レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
スクリプト#3 @避難所
スクリプトに関する話題なら何でも
V2C使用法[スクリプト]
ttp://v2c.s50.xrea.com/manual/script.html
V2Cwikiにもスクリプト関連の情報があります
ttp://v2c.kaz-ic.net/wiki/?%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88
■前スレ
スクリプト#2 @避難所
https://jbbs.shitaraba.net/bbs/read.cgi/computer/43680/1433054157/
たておつ
Instagramのjsonの項目が変わったのかエラーになるな
Json['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'];
[0]がないエラーになるな
V2Cが取得するHTMLはchromeのHTMLと違うみたいだな
もう少し調べて見るか
Instagramはログインしないと表示されない仕様に変わったんだ
scriptのログイン偽装はどうやってやるんだ
ログインしなくて開く
https://www.instagram.com/p/B1bKPTzBa6t/
ログインしないと開かない
https://www.instagram.com/aiko_yamaide/
8
円広志に印税
誤爆った
InstagramのユーザーネームからIDに変換する方法ってあれば楽なんだけど
なければIDを登録しとかないとダメだな
InstagramOnV2C 2019/08/22版
https://www.dropbox.com/s/9wn19vdn9msgidk/InstagramOnV2C_20190822.zip?dl=1
Instagramの投稿をV2Cのスレ形式で表示するjsです
Instagramにログインして使用する場合はストーリーズの取得も可能です
Instagramの仕様に依存するので規制などで将来的には、現在実装している機能が使えなくなる可能性があります
説明はzip内のreadme.txtに
絵がある説明は https://egg.5ch.net/test/read.cgi/software/1507366660/127
以下を修正
・UAをChromeの最新に修正(InstagramCommon.js)
・WEBページ形式でユーザのトップページを取得する際に以下の修正
(getInstagramLists.js、script/system/getdat_sub/instagram.js)
1) UAを指定するように修正
2) クッキーを空で送るように修正新着があった場合に自動でスレを更新する機能を追加
・getdat.jsに爆サイやらしたらば用に入れた修正を反映(Instaとしての修正はありません)
・スクリプトコンソールに表示するメッセージいログを修正(InstagramTools.js)
(ReferenceTab.txt以外全部修正)
#障害の再現を起こっていたときに以下の2つのケースをネットワークのログで確認しています
#①スレ一覧を更新時html取得でhttps://www.instagram.com/xxxxxxx/ へアクセスすると429のエラーとなる
#②スレ一覧を更新時html取得でhttps://www.instagram.com/xxxxxxx/ へアクセスすると302のエラーとなり
ログインページへリダイレクトされる
#本修正は②に対する修正です(V2C本体が持ってるクッキーを一緒に飛ばしてしまい、
それでログインページへリダイレクトされてJson不正になってエラー)
#①のケースはインスタに言わせると「アカウントも作ってねーのにアクセスしすぎなんだよ(怒」
#ってことなので自分のアカウントを作るしか回避はできません
書き直し
InstagramOnV2C 2019/08/22版
https://www.dropbox.com/s/9wn19vdn9msgidk/InstagramOnV2C_20190822.zip?dl=1
Instagramの投稿をV2Cのスレ形式で表示するjsです
Instagramにログインして使用する場合はストーリーズの取得も可能です
Instagramの仕様に依存するので規制などで将来的には、現在実装している機能が使えなくなる可能性があります
説明はzip内のreadme.txtに
絵がある説明は https://egg.5ch.net/test/read.cgi/software/1507366660/127
以下を修正
・UAをChromeの最新に修正(InstagramCommon.js)
・WEBページ形式でユーザのトップページを取得する際に以下の修正
(getInstagramLists.js、script/system/getdat_sub/instagram.js)
1) UAを指定するように修正
2) クッキーを空で送るように修正
・getdat.jsに爆サイやらしたらば用に入れた修正を反映(Instaとしての修正はありません)
・スクリプトコンソールに表示するメッセージいログを修正(InstagramTools.js)
(ReferenceTab.txt以外全部修正)
#障害の再現を起こっていたときに以下の2つのケースをネットワークのログで確認しています
#①スレ一覧を更新時html取得でhttps://www.instagram.com/xxxxxxx/ へアクセスすると429のエラーとなる
#②スレ一覧を更新時html取得でhttps://www.instagram.com/xxxxxxx/ へアクセスすると302のエラーとなり
ログインページへリダイレクトされる
#本修正は②に対する修正です(V2C本体が持ってるクッキーを一緒に飛ばしてしまい、
それでログインページへリダイレクトされてJson不正になってエラー)
#①のケースはインスタに言わせると「アカウントも作ってねーのにアクセスしすぎなんだよ(怒」
#ってことなので自分のアカウントを作るしか回避はできません
>>11
インスタがまだ不調
なんか直しててミスってる状態?
ウェブブラウザですら
ログインしてないでユーザのトップページを開こうとするとログイン画面にリダイレクト
ログインしてユーザのトップページを開こうとするとエラー
cookieとかぜんぜんわからんから修正できない
user idを手動で探して登録しておいて
Query_Hash = '472f257a40c653c64c666ce877d59d2b'で一覧jsonを取得
https://www.instagram.com/p/xxxxxxxxxx/ を読み込んで
フルネーム取得のやりかたにかえようかな
https://www.instagram.com/p/xxxxxxxxxx/
これは連続5回しか読めないのか
>>15
勘違いスクリプトのバグだった
なんとか出来た
Query_Hash = '472f257a40c653c64c666ce877d59d2b'で一覧jsonを取得してると
たまに429のエラーを吐き続けるがまた正常に戻る
規制を掛けてるのか
バージョンアップに失敗してるだけなのか
さっぱり判断がつかん・・・
>インスタ
2秒スリープさせると429エラーが減るかも
なんとなく調子がいい
回数の問題だったら意味ないけど
1秒スリープだと429エラーになるが
2秒スリープにすると429エラーにならないみたい
v2c.createHttpRequestのresponseCodeはバグってる
getContentsAsString()を実行すると正常な値を返すが
何もしないと-1を返す
createHttpRequestは通信開始の宣言をするだけで
実際の通信はgetContentsAsStringやgetContentsAsBytesでやってるので
getContentsAsXXXXX実行しないと-1が返ってくるのは仕様
紛らわしいな
そうしとかないとsetpropertyでUAとかCookieを弄れなくなるの
var hr = v2c.createHttpRequest()
でhrmlまで取得しちゃうとUAとかCookie偽装のの介入ができないでそ?
(UA偽装しないとUAはV2C/xxxxxで飛んじゃうし)
だから
var hr = v2c.createHttpRequest();
hr.setRequestProperty(key, val);
var html = hr.getContentsAsString()
if(hr..responseCode == 200){
}
となるわけ
v2c.readURL()と違って直感的じゃないんだけどね
ID非表示のレスを抽出するスクリプトないでしょうか?
analysis_slipがV2C+でしか使えないのが辛い
//書き込み欄の.jpg:origを?format=jpgに変換
// ${SCRIPT:} ReplaceTwitterjpg.js
var vcx = v2c.context;
var th = vcx.thread;
var wp = th.openWritePanel();
var text = wp.message.text + '';
wp.message.text = text.replace(/.jpg:orig/g, '?format=jpg');
java8にしても最新のRhinoをダウンロードすれば使えるらしいが
V2Cでも問題なくRhino用スクリプトが動くのかな?
java7だとjavascriptでclassが使えないから不便
class使えないのか入れるのやめた
>>25
透明非表示にしないでラベルをつけて
そのラベル使って検索欄で検索とか?
>>26
レス表示欄から起動するjsに一応改造はできたんだけどパクっていいのなんだろうか?
>>31
V2C+の人に承諾取るべきだけど連絡できなければ無断使用になるのかな
個人的にはその改造スクリプト欲しいです
>>31
パクることにします
で、とりま簡単に
https://1.bitsend.jp/download/d5d51a63bda0212208bb1682116e91b1.html
パス:hyqeRazu
使ったことないロダですが今日から14日間有効
オリジナルjs→http://jbbs.shitaraba.net/bbs/read.cgi/computer/43680/1456676632/438
外部コマンド>一般>レス表示に登録
非V2C+用定義 CoCoから-CoCoまでが今回追加個所
出力結果に関してはテキストポップアップで表示
https://i.imgur.com/r1ftgKN.png
https://i.imgur.com/KtyeRNK.png
IP情報はオリジナルをそのまま流用
UA情報は新規追加(Hash2UAを使用)とオリジナルのどちらかを選択(デフォはHash2UAを使用)
UA情報のオリジナルは正規表現を修正
>>33
ありがとうございます。動作確認し正常に反映されました
subject.jsのワッチョイの一部機能が変になりました
「// ss = lastmodify_loader(ss,bd,cx);」の//を削除し上書きした後
スレ一覧のカラムにあるワッチョイを表示に移動させ、V2CMOD-Z設定の一般3の
subject_lastmodifyと連携するにチェックを入れsubject.jsを再読み込み後
スレ一覧を更新するとワk!などが出ますがNo.が全部現状とは異なる数字に変わります
subject.jsのどの箇所をどう書き換えればスレタイの順位番が元通りに戻るのでしょうか
>>35
subject.txtとlastmodify.txtのデフォの並び順が異なるせいです
lastmodify_loaderを有効にした場合はsubjectの内容を捨ててるんで
並び順がlastmodify準拠になります
で、お試しで修正してみました
https://www.dropbox.com/s/0b42exmft2su986/subject_201909020002.zip?dl=1
(自分が使ってるsubject.jsをそのまま上げてます)
933行目からがlastmodify_loaderの機能になります
sort_by_subjectTxtを1にするとlastmodify.txtから取得したスレ一覧の並び順を
subject.txt準拠に並べ直します(並べ直し処理の分遅くなります)
但し並べ直しの対象はsubject.txtとlastmodify.txtのどちらにもあるスレで
どちらかにしか存在しないスレは並べ替え後のスレ一覧から漏れます
933行目から最後までがlastmodify_loaderの機能になります
https://www.instagram.com/graphql/query/?query_hash=08574cc2c79c937fbb6da1c0972c7b39&variables= {"cached_feed_item_ids":[],"fetch_media_item_count":12,"fetch_media_item_cursor":"''"}
これはhttps://www.instagram.com/ で表示される元のAPIみたいなんだけど
これをV2Cのスクリプトで読むとcookieのds_user_idを認識しないみたで読むことが出来ない
どうすれ読めるようになるんだろう?
レスポンスの中に複数の「set-cookie」がある場合
一つの「set-cookie」しか取り込めなかった記憶があるから
それでds_user_idが入ってる「set-cookie」が捨てられたとか?
>>36
subject.jsを置き換え更新しましたがソフトウェア板と自作PC板では問題ありませんでした
常駐板は20、閲覧するスレは60程度と比較的少ないせいか新着書き込み
受信完了するまで1分強程度ですし概ね満足しています
迅速な対応ありがとうございました
https://www.instagram.com にアクセスするときは
Request HeadersにCookie設定しないで
Form Dataでユーザー情報を渡してるみたいだけど
V2Cだとどうやってアクセスすればいいんだ?
HttpRequestオブジェクト
createHttpRequest(java.net.URL u,String d)
URLuに対してデータdをPOSTするHttpRequestオブジェクトを作成する。(dはそのまま送信されるので適切にencodeされている必要がある。)
のdでjsonを飛ばすしかないんじゃないの?
https://www.instagram.com/?Form Data=access_token=…
をURLエンコードでつなげればいいみたい
やっと出来た
原因がわかったCookieを読み込む処理を読んでないバグだった
Cookieが空白なら失敗するに決まってる
いろいろ勉強になったからいいか
>>38
これは投稿時間でソートしてないので
タイムスタンプを終了判定に使えない
DATファイルに存在してるかで判断するしかないので処理に時間がかかるが
これで規制を回避して更新チェックができるようになった
[0][node][taken_at_timestamp]
[1][node][taken_at_timestamp]
このjson配列をtaken_at_timestampでソートする場合
下の関数に添字とか入れても動きそうにないから
[node]の下の子ノードで配列作り直してソートするしかないのかな
//. 比較関数
function compare( a, b ){
var r = 0;
if( a.age < b.age ){ r = -1; }
else if( a.age > b.age ){ r = 1; }
return r;
}
myArray.sort( compare );
これを使えばいいのか
mapがなんなのかもわからん
Sorting maps
一時的な配列に実際にソートに使用する値を抜き出して、その一時的な配列をソートし、 一時的な配列から元の配列を正しい順序で取得します。
// ソート対象の配列
var list = ["Delta", "alpha", "CHARLIE", "bravo"];
// 一時的な変数mapへ位置とソート順の値を保持します
var map = list.map(function(e, i){
return {index: i, value: e.toLowerCase()}
})
// 減算値を使用してmapをソートします
map.sort(function(a, b) {
return a.value > b.value ? 1 : -1;
});
// 結果の順序を反映して取得します
var result = map.map(function(e){
return list[e.index]
})
[node]の下に[taken_at_timestamp]が一つしかない、かつ他のnodeのtaken_at_timestampと内容が重複しないなら
var 連想配列 = {}
連想配列[[0][node][taken_at_timestamp]] = [0]
連想配列[[1][node][taken_at_timestamp]] = [1]
でtaken_at_timestampをキーにした連想配列にして
それをソートすりゃいいんじゃね?
https://www.sejuku.net/blog/27965
java rhinoのjavascriptにはDOMがないから検索の面倒な処理をしてたのか
javaならDOM操作が出来るからjavaを使えばいいのか
java8にrhino-1.7.11.jarを入れてみたが
エラーになったり変な動作したりして使えなかった
そもそもあれは7に入れるようのものだから競合して当然だよ
ソートされたnodeが欲しいなら>>46 でいいじゃない何を無駄に難しくしてるんだ
V2C-R 2.11.8とその派生はRhinoと相性が悪い
上手くいきそうだけどHTMLが完璧じゃないとエラーになる
var factory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
var documentBuilder = factory.newDocumentBuilder();
var document = documentBuilder.parse(Url);←67行目
var root = document.getDocumentElement();
//ルート要素のノード名を取得する
v2c.alert("ノード名:" +root.getNodeName());
67行目org.xml.sax.SAXParseException: The element type "img" must be terminated by the matching end-tag "</img>".
javaソースだとこれが指定されてるけどなんか関係あるのかな
public void domRead(String file) throws SAXException, IOException, ParserConfigurationException
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板