Navi2ch for Emacs (Part 22)
Emacsen で動く 2ch 専用ブラウザ、Navi2ch のスレッドです。 Navi2ch Project Home Page http://navi2ch.sourceforge.net/ 開発版 % cvs -z3 -d:pserver:anonymous@navi2ch.cvs.sourceforge.net:/cvsroot/navi2ch co navi2ch 過去ログ >> ~/.navi2ch/etc.txt > navi2ch > http://navi2ch.sourceforge.net/log/ > navi2ch 前スレ Navi2ch for Emacs (Part 21) https://mevius.5ch.net/test/read.cgi/unix/1405127170/ >>200 神 もしかしてオリジナルの作者さんですか!? >>200 ってどれに当てれば良いのかな? >>185 を当てた上で当てるのかな? ついて行けてない >>204 有難うございます melpaはほとんど使ったことありませんでした トリ配布よりこちらを使うのが最近は流行りなんですかね >>200 のパッチと>>124 のhttps:// →http:// 、bbstableをhttpで指定の三つで、 NTEmacs 24.5上でもNavi2chが復活! XPにもNavi2ch入れたくなるw (NTEmacs 24.5でTLSをうまく動かせなかった) >>204 に>>185 のパッチを当てて読むのはできるようになったのですが 書き込みをしようとすると ERROR: 投稿時の認証用クエリがありません と言われて書き込みできません i.imgur.com/vkLdOe3.png どこをなおせばいいのでしょうか? >>207 >>204 に改良の加わった>>200 のパッチをあてましょう 誰かいるかな? いまスクリプト攻撃を回避するのに絵文字を使おうという方向になってるんだけど Navi2chはSJISしか投稿できないでしょう 投稿のエンコードを行ってるファイルがどれか判る人いる? 山下の旧運営がエンコードでブラウザを弾いてきたときもここで詰まってしまった 2ちゃんねる専用ブラウザが重大?なHTTP/HTMLの規約違反をしているかもしれない https://blog.3qe.us/entry/2013/12/09/031713 >>209 投稿は navi2ch-multibbs.el 内の navi2ch-2ch-send-message その中に (coding-system (navi2ch-board-get-coding-system board)) とかあるから辿ればいいんじゃない? >>210 即レスありがとう ファイル総当りで探してみる 当分誰も来ないと思ってたから驚いたw なんか板一覧が盛大に文字化けして大量の「&#65533;」(実際は半角)が これ多分 Unicode の U+FFFD だと思うんだけど、コーディング誤認識してる? >>209 の件と関係あるんだろうか あと俺環だったらスマソ bbsmenu 読み直したら直ったわ スレ汚しスマソ >>209-210 の件、まだ途中だけど備忘録に ~/.navi2ch/init.el ;; navi2ch-board-get-coding-system @navi2ch-board.el ;; navi2ch-board-coding-system-alist @navi2ch-vars.el (navi2ch-auto-modify (setq navi2ch-board-coding-system-alist '(("livegalileo" . "utf-8")))) とするとコーディングが指定できるらしい BOARD-IDはダブルクオート必須、CODING-SYSTEMは utf-8 だけでなくshift_jisも不可 EmacsはUnicode対応版で設定済みだけれどエラーになる 単に書式の問題かコーディングファイルを書き換える必要があるのかは調査中 CODING-SYSTEM のほうは文字列じゃなくてシンボルを設定するんだよ。 だからダブルクオートで括っちゃダメで、シングルクオートを前置しないといけない。 'shift_jis みたいに。 ごめん、コードちゃんと見てなかった。 そのコードだともう外側でクオートしてるから、シンボルをクオートすると二重になっちゃう。 何も付けずに、単に shift_jis とか書かなきゃいけなかった。 >>216 ありがとう Unicodeを選択するとサマリーが全て文字化けする… そもそも読むだけならUnicodee(絵文字)混交で読み込んでるしなぁ 送信だけ変更するには別の関数を探さないといけないのか 過去ログがなんか取得できなくなってない? Prxy2chでウェブスクレイピングしようとしたら現行スレも取得できない 少し前まで現行スレはダイレクト接続、過去ログはPrxy2chと使い分けてたんだけど ウェブブラウザでは見られるんだよね スタンドアロン版html2dat(.exe)があればどうにかなるのに 「DAT関連の設定」→「個別設定」→ 「差分取得を許可する」 「スレッド途中でDAT落ちなら最終行に追加する」 を許可したら過去ログも読み込めた こりゃまだまだproxy現役だな 特定の板やスレだけ過去ログを取得できない、あるいは取得しづらくなってる http://greta.5ch.net/test/read.cgi/poverty/1697461053 ダメなスレは何度やってもdatが取得できない HTTPヘッダーの環境変数を見て弾いていると思われ https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 回避策としてNavi2chに、本来無用な環境変数を与えてみた これで失敗( not found )したことはない ~/.navi2ch/init.el (defadvice navi2ch-net-send-request (around navi2ch-net-send-request-ad activate) (or (assoc "User-Agent" other-header) ;; cf. https://en.wikipedia.org/wiki/List_of_HTTP_header_fields (add-to-list 'other-header (cons "Accept-Encoding" "gzip, deflate")) (add-to-list 'other-header (cons "Accept-Language" "Accept-Language: en-US")) )) >>215 > いまスクリプト攻撃を回避するのに絵文字を使おうという方向になってるんだけど って、❤😍とか書ければ良い? 絵文字は dat だと文字参照になってるのよね だから普通に文字参照で投稿すればいいだけじゃないのかと socks.elなるものがemacsに同梱されてたので、これを使うように改造中。 >>221 http://greta.5ch.net/test/read.cgi/poverty/1697461053 のdatを取得しようとすると、not foundだ 過去ログって、無課金で取得できるん? VERBOSE GET /poverty/dat/1697461053.dat HTTP/1.1 VERBOSE MIME-Version: 1.0 VERBOSE Host: greta.5ch.net VERBOSE Connection: close VERBOSE User-Agent: Monazilla/1.00 Navi2ch VERBOSE Accept-Language: en-US, ja VERBOSE Accept-Encoding: gzip, deflate INFO HTTP/1.1 404 Not Found VERBOSE GET /poverty/kako/1697/16974/1697461053.dat.gz HTTP/1.1 VERBOSE MIME-Version: 1.0 VERBOSE Host: greta.5ch.net VERBOSE Connection: close VERBOSE User-Agent: Monazilla/1.00 Navi2ch VERBOSE Accept-Language: en-US, ja VERBOSE Accept-Encoding: gzip, deflate INFO HTTP/1.1 404 Not Found パッチキットをpastebinに貼ろうとしたら、オメーのは攻撃的だからパブリックにはできねーとか言われた。んだもんで、paste.fo * >>185 からの変更点 ** >>193 socks使う場合に対応 ** >>194 json-parse-stringがない場合のデフォルトをbbsmenu.htmlにした * >>200 からの変更点 ** socks直接サポート ** ビルドシステムをmesonに変更 meson,ninja,python, texinfoにパスを通しておいてください。 ** 投稿時に、SJISにはない文字を数値文字参照に置換 ** oysterから過去ログ取得 ** 絵文字対応 SJISに無い文字は数値文字参照に置換します ** thumbnail改良(https:やimepicの増強などに対応) ** h抜きは使えません。 * ソースの取得 gitかzipのいずれかで取得 1 gitでclone https://github.com/naota/navi2ch.git 2 zipを取得 https://github.com/naota/navi2ch/archive/refs/heads/master.zip * パッチの適用 展開したソースのトップディレクトリにcdして以下のコマンドでパッチを適用します。 パッチに日本語部分も含まれてるのでコード変換が必要です。 curl -s -L https://paste.fo/raw/6d276a82fc52 | iconv -f utf-8 -t iso-2022-jp |tr -d '\r' |patch -p1 -l * ビルド, インストール meson setup builddir meson compile -C builddir meson install -C builddir トップディレクトリのrel-note.txtにもう少し詳しい変更点があります。 autotools死ね死ね団に入団、h抜き死ね死ね団にも入団と書いたのが不味かったのだろうか 何回か試行錯誤したらアドレスでBANNされた 別のところ(past)はXXXを削除しろとか言われるし .strip() かな? 削除したら動かねーんだよ と言うわけで寛容なpaste.foに貼れた。rawじゃない方は https://paste.fo/6d276a82fc52 meson初めて知った 何が変わったか実感することはないがとりあえず動いてる >>223 参照文字のコードで&#127994;(メタ表記、&と#は本来半角)と投稿すると &amp;#127994; に置換されてしまう どれかのウェブブラウザで投稿できた気もするけど、試してみた範囲で同じ結果だった これは投稿のコーディング選択だけで片付く問題じゃないね パッチが大きくなったので、公開リポジトリを作った * インストール https://repo.or.cz/navi2ch.git cloneして meson setup builddir meson compile -C builddir meson install -C builddir * autoload, infoの設定 .emacs.d/init.elに以下を追加 (load "~/.emacs.d/lisp/navi2ch/navi2ch-autoloads") 使い方(新規機能) * socks 変数navi2ch-socks-serverにsocks5://[user[:password]@]hostname[:1080]の形式で指定 * 画像 画像URLっぽい文字列に上で、「,」でプレビュー プレビューしたサムネイルの上でRETで閲覧(初回は外部/内部ビューアの選択) 内部ビューアを選択するとemacsの中でimage-modeで閲覧。Qで終了。 * 絵文字 CP932で表現できない文字は数値文字参照に置換する。つまり🏺と直に書けば良い。 書き忘れていました navi2ch-net-5chdat-downgrade-to-http *non-nilかつnavi2ch-net-http-proxyがnon-nilの場合5chのdat取得の際は強制的にhttpでデータを取得する。 proxy2chのようなHTML -> dat変換を行うプロキシを使うときに指定します。 あと、昨晩サムネイルのバグを修正してpushしました。 内部ビューアの終了がQだと間違えてqを推した時にバッファが残ってしまうので、qで終了に変更。 mesonというコンパイラは初めて知った 導入する余裕がない人向けに弥縫策 1) Detour2ch/Prxy2chを起動 2) 「通信」→「書き込み関連の設定をする」→「パラメータ」 「パラメータの置換を許可する」をチェック Accept: text/html Accept-Language: ja Referer: http://www.5ch.net/ を追加 http://egg.5ch.net/test/read.cgi/software/1605104188/159 3) 「メイン」→ 「読み込み」「書き込み」にチェック 522エラーが発生しないスレは、古いNavi2chでもログの取得が可能になる プロキシを通した書き込みも「リファラが変です」エラーは出なくなる…はず コンパイラっつーかビルドシステムな 重箱の隅だが 自分はむしろ弥縫策って言葉を初めて聞いたわ 英語で言うところの workaround ってことでいいのかな * 画像の扱いを改良しました。内部ビューアでレス内の画像を連続閲覧できます プレビューしたサムネイルの上でRETで内部ビューアで閲覧 閲覧中のキーバインドは "n" " " 次の画像 "p" "S-SPC"(shift space) 前の画像 "q" ビューアを閉じる * BE iconを自動表示するようにしました。 具体的には変数navi2ch-thumbanil-show-automaticaly-prefixに設定した プリフィックスを持つ画像のサムネイルを自動表示します。自動表示した くない場合はこの変数をnilに設定してください。 * インストール https://repo.or.cz/navi2ch.git cloneして meson setup builddir meson compile -C builddir meson install -C builddir * autoload, infoの設定 .emacs.d/init.elに以下を追加 (load "~/.emacs.d/lisp/navi2ch/navi2ch-autoloads") 久々navi2ch使ってる、ありがとう できればmelpaにnavi5chとでも名前かえて上げるか navi2chの元repoマージにしてほしい 昨日くらいからnavi2chから書けなくなりました 「投稿エラー: ERROR: あなたはこのスレッドにはもう書けません。🐙」 って出ます ブラウザやchmateからだと書けます User Agentかな?と考えていろいろ変えていますが書けません 一昨日くらいまでは"Monazilla/1.00 (Ciisaa/1.43(A))"で書けていました 皆さんは書けますか? User-Agentは違うけど今は書けなくなった。 やっぱり書けるな。proxy2ch通してるけど。 "Monazilla/1.00 2chMate/0.8.10.153 Dalvik/2.1.0 (Linux; U; Android 12; SC-52B Build/SP1A.210812.016)" Traceback (most recent call last): File "/usr/home/ore/navi2ch/scripts/default_options.py", line 12, in <module> def find_emacs_in_path() -> pathlib.Path | None: TypeError: unsupported operand type(s) for |: 'type' and 'NoneType' Python力が低すぎて😥 >>245 実行されてるpythonのバージョンは? 3.9 から 3.11 にあげたところ、今度は distinguished_name が無いと怒られてしまいました。 [1/2] Generating ca_key.pem with a custom command FAILED: ca_key.pem ca_cert.pem ca_cert.srl /usr/bin/openssl req -batch -newkey ec:ecprm0.pem -sha256 -nodes -subj '/C=JP/ST=Tokyo/O=Snake Oil Company/CN=Snake Oil company Root Certificate Authority' -keyout ca_key.pem -out ca_cert.pem -x509 -days 3650 -extensions v3_ca -config ../test/ssl.conf Generating an EC private key writing new private key to 'ca_key.pem' ----- unable to find 'distinguished_name' in config problems making Certificate Request 6904790237184:error:0E06D06C:configuration file routines:NCONF_get_string:no value:/usr/src/crypto/openssl/crypto/conf/conf_lib.c:273:group=req name=distinguished_name ninja: build stopped: subcommand failed. INFO: autodetecting backend as ninja >>237 ありがとうございます。 Macで使っているのですが、 default_options.py の find_on_darwin() の中の emacs = find_in_app() and None は、これで合っているのでしょうか。 ここでemacsがNoneに上書きされてしまって、emacs not found になってしまうようなのですが。 >>250 あざす。今度はこんなエラーが… /usr/bin/openssl x509 -req -in localhost_csr.pem -CAkey ca_key.pem -CA ca_cert.pem -CAcreateserial -subj '/C=JP/ST=Tokyo/O=Snake Oil Company/OU=Limiment Div./CN=localhost' -days 3650 -sha256 -extfile ../test/ssl.conf -extensions server_ext -out localhost_cert.pem x509: Unrecognized flag subj x509: Use -help for summary. >>251 そのオプションがないのはopensslが古いのだろうかね CSRにsubject書いてあるから 指定する必要はないんだけど 上書きできるようになってるみたいね 最近できたオプションなのかな? OpenSSL 1.1.1t-freebsd 7 Feb 2023 だったので、openssl32 を入れてみたところやっとこさコンパイルが通りました。 setup の時に meson.build:88: WARNING: The variable(s) 'configure_input' in the input file 'navi2ch-version.el.in' are not present in the given configuration data. と出るのは無視してかまわないでしょうか? インストール後スレを開こうとすると、 Symbol’s function definition is void: navi2ch-thumbnail-insert-image-reload となってしまうようになりました…。 >>249 > emacs = find_in_app() and None これはダメですね。修正しておきます。 emacs = find_in_app() が正しいです。 >>254 > setup の時に meson.build:88: WARNING: The variable(s) 'configure_input' in the input file 'navi2ch-version.el.in' are not present in the given configuration data. と出るのは無視してかまわないでしょうか? 「configureで生成されたファイルだよ」というコメントを挿入するための変数なので、無視して良いです。 >>255 ターミナルからの利用ですか? workaroundとしてM-x load-library[RET] navi2ch-thumbnailしてみてください。 >>256 emacs -nw で使ってます。 (autoload 'navi2ch-thumbnail-insert-image-reload "navi2ch-thumbnail" nil t) で解決しました。 >>239 何か隠しNGワードを書き込んだね よくあること 隠しNGワードはその時々によって変わる むしろ今まで地雷を踏んでいない人がいまだそんなにいるものなの? 5chの隠しNGワードを報告するスレ http://next2ch.net/test/read.cgi/poverty/1689216529/ ここは隠しNGワードを書き込めるので、後進のため後学のため備忘録のためにどうぞ Navi2chを「一旦終了」(ここ重要)して ~/.navi2ch/cookie.info の削除(あるいはリネーム)後に再起動 最初の書き込みではcookieが存在しないため 「フォーム情報が不正です」といわれるかもしれない 二度目からは普通に書き込める >>258 有難うございます!!!書き込めています!!! 歴はかなり長いのですが「隠しNGワード」初めて知りました >>248 証明書(test用ファイル)をデフォルトでは生成しない + socksサーバーがない場合にテストをスキップする >>249 emacsバイナリの検索のバグ >>254 configureの警告 >>255 非windowシステム(imageが扱えない)への対応 を修正したものをコミットしました。 >>248 の修正で、meson testはデフォルトでは何もしなくなりました。 test(meson test)を行いたい方はsetupの際に-Ddisable-test=falseを追加してください meson setup -Ddisable-test=false etc.txt で追加した jbbs.shitaraba.net の板で =C になっているスレッドを navi2ch-bm-select-article-or-scroll-up で開こうとすると、 Debugger entered--Lisp error: (invalid-function (start start)) (start start)() navi2ch-js-article-update(... でエラーになってしまうようです。R でスレのデータを削除すると開くことができます。 jbbs.shitaraba.netは全く使ってないので、設定方法とか教えてくれると嬉しい。 ~/.navi2ch/etc.txt ``` PSP http://jbbs.shitaraba.net/computer/22593/ computer ``` g computer 適当なスレを開く q で閉じる SPC でもう一度スレを開く (invalid-function (start start)) 修正しました。currentブランチとしてpushしてあります。 FreeBSDのcurrent, stable => current, mainの感じです。(mainをstableに変更すると大顰蹙を買いそうなので) ファイルローカル変数としてlexical-bindingは設定してあるので、 (let ((lexical-binding t) (start start)) 自体も不要だと思いますが、何となく残してしまいました。 --- a/navi2ch-jbbs-shitaraba.el +++ b/navi2ch-jbbs-shitaraba.el @@ -99,9 +99,9 @@ START が non-nil ならばレス番号 START からの差分を取得する。 (time (cdr (assq 'time article))) (url (navi2ch-js-article-to-rawmode-url board article start nil start)) (func (if start - (lexical-let ((start start)) + (let ((lexical-binding t) (start start)) (lambda () (navi2ch-js-article-callback start))) - 'navi2ch-js-article-callback))) + #'navi2ch-js-article-callback))) (navi2ch-net-update-file url file time func nil start))) (defun navi2ch-js-url-to-board (url) shitarabaはhttpキメ打ちだったので、httpsにも対応して、あとmachibbsも使えるようにしました。 currentブランチとしてpushしてあります。 $ git clone https://repo.or.cz/navi2ch.git $ cd navi2ch % git fetch --all $ git branch --track current remotes/origin/current $ git checkout current $ meson setup builddir $ meson compile -C builddir $ meson install -C builddir # el, elc, info, iconが$HOME/.emacs.d/lisp/navi2chにインストールされます $HOME/.emacs.d/init.elに↓を書いておけば、autoload, info, icondirが設定できます。 (load (file-name-concat (file-name-directory load-file-name) "lisp/navi2ch/navi2ch-autoloads")) spacemacs派、追加パッケージにコレだけでビルドも設定も要らん (navi2ch :location (recipe :fetcher git :branch "current" :url "https://repo.or.cz/navi2ch.git" ; :files (:defaults "contrib" "icons"))) history の一番最後の行で g を押すとエラーになるようです。 Debugger entered--Lisp error: (wrong-type-argument stringp nil) string-match("^https:\\(.*\\)" nil) navi2ch-history-assoc-item(nil) navi2ch-bm-get-board-internal(nil) navi2ch-bm-goto-board() funcall-interactively(navi2ch-bm-goto-board) call-interactively(navi2ch-bm-goto-board nil nil) command-execute(navi2ch-bm-goto-board) 報告どうも。修正しておきます。 diff --git a/navi2ch-history.el b/navi2ch-history.el index 5f64a69..6fa64fe 100644 --- a/navi2ch-history.el +++ b/navi2ch-history.el @@ -78,7 +78,8 @@ key は (concat uri artid)。") (defun navi2ch-history-assoc-item (item) (or (assoc item navi2ch-history-alist) - (and (string-match "^https:\\(.*\\)" item) + (and item + (string-match "^https:\\(.*\\)" item) (assoc (concat (if (string-prefix-p "https:" item) "http:" "https:") (match-string 1 item)) >>268 今は閲覧できるようです。巻き戻したのかな? package-vc-installでもインストールできたっぽい。 こんな感じ。 (unless (package-installed-p 'navi2ch) (package-vc-install '(navi2ch :url "https://repo.or.cz/navi2ch.git" ; :branch "current" :vc-backend Git))) 書けなくなったよ もうなんだかんだ面倒臭いだろ書き込みはxwidgetsでダイレクトにフォーム表示してくれたらいいけどな 投稿エラー: ERROR: 投稿時の認証用クエリがありません。 ---------------- すくなくとも俺環でこの板は上記エラーでそうみたい 書けてるの? 最近info読みたいことあったnavi2ch.texi UTF-8にしてくれないかな quelpaでインストールすると文字化するのよね quelpa見るとmakeinfoでinfo作ってるようだから、makeinfoというファイル名で コード変換して本物makeinfoに渡すスクリプト噛ませれば解決しない? コード変換すると全部入れ替えだから二の足踏んでるんだよね。 原因は特定できないけれど Windows 11以降、謎の文字化けが起きるようになった 例えば、米こうじの「こうじ」、ウソつきの「うそ」、全角チルダ(~)等 どれもWindows 10までは普通に入力できていた文字 「うそ」は、機種依存文字でないほうも書き込めない 「以前のバージョン」のIMEも試してみた 自分以外にも似た文字化けを見たのでOS固有の問題かもしれないけれど ウェブブラウザでは正常に書き込まれる macで書き込みテスト うそ(印刷標準字体)、うそ(略字)、こめこうじ、全角チルダ 噓、嘘、米麹、〜 今回は乗客の通販とか凄いねしか書けないんだろう 国葬すべきだよな 絶対に潰します!」(ずっと待ってるんだから当然 バグはシステムをそのまま持ってきた意味を分かってたはず >>280 > うそ(印刷標準字体)、うそ(略字)、こめこうじ、全角チルダ > 噓、嘘、米麹、~ chmateから 噓、嘘、米麴、米麹、~、~(波ダッシュ) >>280 波ダッシュになってるなあ 波ダッシュをJIS X 0208にない全角チルダに変換してしまうのは Windowsが長らく抱えていた問題だけど 11で変えたんだな Emacsが依存してるのかね それともproxy? わかったああああぁ! https://qiita.com/kasei-san/items/3ce2249f0a1c1af1cbd2 自分が全角チルダと思っていたのは波ダッシュで Unicodeの波ダッシュが今まで”下がって上がる”形に誤記されていたのか https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Wave_Dash2.svg/427px-Wave_Dash2.svg.png S-JISに存在しないキャラクタコードを入力したらそりゃおかしくなるわけだわ とりあえず「にょろ」で「〜」を登録しておいた ウソや「しょうゆ」も何かこういうコーディング問題だろうな 最新ベータのNavi2chを使えば混合表記でも消えたりしないのかもね うちはコンパイルしてもしなくても途中でエラーが出て使えないから IMEへ登録しても異体字に環境依存文字(非JIS/S-JIS)が含まれると文字化けするな 他は変えていないからWindows11固有のバグなのか (coding-system-put 'cp932 :encode-translation-table (get 'japanese-ucs-jis-to-cp932-map 'translation-table)) これを ~/init.el に設定しておくと〜(波ダッシュ)だけは文字化けしない模様 文字化け問題が解決したので報告 最近リリースされたEmacs 29.3へ更新したら異体字が書き込めるようになった Windows 11のリリースに合わせて修正されたのかもしれない そのままだとUnicode文字は入力できないけれどS-JISの文字まで消えることはない やっぱりダメだわ 何か条件があって書き込めるときと文字化けするときがある Emacs更新で文字化けしにくくはなったけれど理由が不明 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる