#令和3年3月31日付告発状 Emacs-Lisp関数# Markdownから見出しレベルを指定しWikiに投稿するデータを生成するEmacs-Lisp関数

〉〉〉 Linux Emacs: 2021/04/14 11:31:41 〉〉〉

;; 2021-04-14
(defun k-markdown-copy-to-subtree-wiki (arg)
  "Narrow buffer to the current subtree."
  (interactive "p")
  (save-excursion
    (let ((=start)(=end)(=p)(line_start)(line_end))
      ;;(markdown-outline-previous)
      (setq exec (lambda (pattern1 pattern2)
                   (setq =p (point))
                   (re-search-backward pattern1 nil t)(setq =start (point))
                   (beginning-of-line)(setq line_start (point))
                   (end-of-line)(setq line_end (point))
                   (setq lv1 (concat "./" (car (nthcdr 5 (split-string (buffer-file-name) "/"))) "/"))
                   (setq lv2 (concat (car (nthcdr 6 (split-string (buffer-file-name) "/"))) "/"))
                   (setq title (concat  lv1 lv2 (buffer-substring line_start line_end)))
                   ;;(progn (markdown-back-to-heading-over-code-block t) (setq =start (point)))
                   ;;(progn (markdown-end-of-subtree)
                   ;;(if (and (markdown-heading-at-point) (not (eobp)))
                   (goto-char =p)(message (int-to-string =start))(message (format "\\(%s\\|%s\\)" pattern2 pattern1))
                   (cond  ((re-search-forward (format "\\(%s\\|%s\\)" pattern2 pattern1) nil t)
                           (progn (backward-char 1)(beginning-of-line)(setq =end (point))))
                          (t
                           (message "該当なし")))(message "%s" (int-to-string =end))
                   (setq fname (file-name-nondirectory (buffer-file-name)))
                   (string-match ".+_\\(.+\\)\\.md" fname)
                   (setq fname (match-string 1 fname))
                   ;;(copy-region-as-kill =start =end)
                   ;; 指定した範囲のリージョンのテキストを変数に代入
                   (setq title (replace-regexp-in-string "#+ " "" title))
                   ;;(setq title (concat fname " #令和3年3月31日付告発状 " title))
                   (setq fname (concat "TITLE:" title))
                   (setq fname (concat fname "\n#contents\n----\n"))
                   (setq text (buffer-substring-no-properties =start =end))
                   (setq text (concat fname text))
                   (setq text (replace-regexp-in-string "^#### " "**** " text))
                   (setq text (replace-regexp-in-string "^### " "*** " text))
                   (setq text (replace-regexp-in-string "^## " "** " text))
                   (setq text (replace-regexp-in-string "^# " "* " text))
                   (message title)
                   ;; クリップボードに変数の内容を送る。
                   (generate-new-buffer "a")
                   (with-temp-buffer
                     (insert text)
                     (call-process-region (point-min) (point-max) "xsel" nil "a" nil "--clipboard" "--input"))
                   (message "%s" (buffer-string))
                   (kill-buffer "a")
                   (generate-new-buffer "b")
                   (with-temp-buffer
                     (insert title)
                     (call-process-region (point-min) (point-max) "xsel" nil "b" nil "--primary" "--input")
                     (message "%s" (buffer-string)))
                   (kill-buffer "b")))

      ;; (if (boundp n)
      ;;     (setq n 3))
      (if arg (setq n arg)
         (setq n 3)) ;;なぜか1の処理が実行される。なかなか消えなかったエラー。

      (cond ((eq n 1)
             (funcall exec "^# .+$" "^# .+$"))
            ((eq n 2)
             (funcall exec "^## .+$" "^# .+$"))
            ((eq n 3)
            (funcall exec "^### .+$" "^## .+$"))
            (t
            (funcall exec "^### .+$" "^## .+$")))
      )))

〈〈〈 2021/04/14 11:33:23 Linux Emacs: 〈〈〈

#令和3年3月31日付告発状 **** スクリプトでファイル名を一括変更し、Picasaウェブアルバムにスクリプトでアップロードする資料作成の手順の紹介と記録_2014年6月13日

<2014-06-13 金 11:32> [ ←これからの記述範囲の開始時刻]]

スクリプトでファイル名を一括変更し、Picasaウェブアルバムにスクリプトでアップロードする資料作成の手順の紹介と記録_2014年06月13日10時37分39秒 - YouTube https://www.youtube.com/watch?v=2IyHBO9vg74&feature=youtu.be

作業の手順を上記YouTube動画にしました。説明自体は前にもやっていると思いますが、DVDに収録予定のフォルダと対応させています。アルバムの作成を伴った初期の投稿には次のコマンドを実行しています。

for f in `ls *.jpg`;do h-picasa-album-post.py $f; sleep 6; done

bashスクリプト言うよりワンライナーのコマンドです。for文は繰り返し処理です。コマンド「ls *.jpg」の処理結果を一行ずつfという変数に代入し、その変数を引数にコマンド「h-picasa-album-post.py」を実行しています。

.jpgの部分はワイルドカードです。.jpgという拡張子がついたファイル名がすべて対象になります。これは「2014-06-16_*.jpg」という使い方も出来るので、次回以降のファイルの追加ではそのように使うこともあります。

h-picasa-album-post.pyコマンドを初めに実行すると次の2つのファルを生成するようにしています。→ album_id.txt album_photos_list.txt

album_id.txtはその存在をチェックすることで、まだ存在しない場合にのみアルバム名の入力を促し、アルバムを作成します。次回以降のはその内容であるアルバムIDを参照して、アルバムを指定してアップロードをするようにしています。

album_photos_list.txtは、Picasaウェブアルバムから登録済みの写真のタイトル名名を取得してファイルに書き込んでいます。f.write("%s\n" % photo.title.text)というコードが実際の処理を行う部分です。

わかりにくいかもしれませんが、パソコンのシステムにある情報ではなく、Picasaウェブアルバムから取得したデータをテキストファイルとして書き込んでいるものです。通信を介して込み入った処理なので、過程においてエラーが出て不正確になる可能性は経験的にもあるかと思っています。

登録済みかどうか自身が持てない時のために、確認用として作ったファイルだったと思います。新たに作ったファイルはすぐにアップロードするようにしているので、重複の問題も起きにくかと思っています。

言葉では説明がわかりづらい部分もあるかと思うので、コマンドの実行の様子をスクリーンショットにしたものを次に3つご用意しました。catは引数に指定したファイルの内容をそのまま端末の標準出力に表示するコマンドです。

2014-06-13-121903_% cat album_id。txt.jpg pic.twitter.com/LUZdvwwn3q

2014-06-13-121103_% cat album_photos_list。txt.jpg pic.twitter.com/aLILPcmfFf

2014-06-13-121342_% cat url。txt.jpg pic.twitter.com/x3c9ZBcUds

% echo -e "`xsel -b`\n" > ./url.txt && cat ./url.txt ← というコマンドを締めくくりにしていますが、事前に取得したURLとタイトルのクリップボードの内容をお決まりのファイル名に書き出し、確認を兼ねて内容を表示させています。

2014-06-13-114858_ % echo -e ”`xsel -b`\n” > 。/url。txt && cat 。/url。txt.jpg pic.twitter.com/OsnptevtxZ

Linuxの端末では上記スクリーンショットにあるようにURLの部分がリンクとなり、すぐにブラウザでページを開くこともできます。これでアルバムの状態を確認してから追加の投稿をやったり、追加の投稿がうまくいったか確認することもあります。

2014-06-13-125630_マイ フォト>資料写真/2007年7月21日撮影:金沢港・金沢西警察署・金沢中央市場.jpg pic.twitter.com/IVZMk6JRQX

上記のスクリーンショットが実際にブラウザで対象のPicasaウェブアルバムを開いたところです。Googleにアカウントを持っていないかログインしていない場合などは、Google+のアルバムとして表示されるかもしれません。

Picasaウェブアルバムのアルバムは全体を参考にしていただくもので、説明には個別の写真を使う予定です。これまでも使ってきたと思いますが、本格的な説明に使うのはこれからです。それだけに念入りに説明をさせてもらっています。

PicasaウェブアルバムとGoogle+のアルバムとの違いについて新たな発見があったので、項目を別に作って説明をしておきたいと思います。アップロードと管理については必要なご説明をしたと思います。<2014-06-13 金 14:14> [ ←これまでの記述範囲の終了時刻]]

#令和3年3月31日付告発状 補充書01### 平成6年に弁護士になったという江村正之検察官,茨城県下妻市の江村法律事務所,ストリートビューで下妻神社の参道のような場所

:CATEGORIES: @kanazawabengosi #金沢弁護士会 @JFBAsns 日本弁護士連合会(日弁連) #法務省 @MOJ_HOUMU #江村正之検察官 #岡口基一裁判官

〉〉〉 kk_hironoのリツイート 〉〉〉


> 2019-02-01-095037_江村法律事務所 - Google マップ.jpg https://t.co/HMoRTndE9R

〉〉〉 kk_hironoのリツイート 〉〉〉


> 2019-01-31-234508_事件発覚後、容疑者「おれはやってません」 茨城女子大生事件 - 毎日新聞.jpg https://t.co/KB4ptAYtIh

 上記のツイートにある殺人事件がきっかけで,江村正之検察官の法律事務所をGoogleマップで調べ始めたという記憶があります。思いの外,Googleマップで調べ始める前の,神栖市の事件のツイートが少なかったのですが,同じ茨城県ということもあり,それがきっかけとなりました。


2019-02-01 09:59:09 "2019-02-01-093926_江村正之 弁護士 - Google 検索.jpg http://pic.twitter.com/EMzXZCdbCL " https://twitter.com/s_hirono/status/1091138854554202112

2019-02-01 09:59:27 "2019-02-01-094947_茨城県 - Google マップ.jpg http://pic.twitter.com/4XTSAdEjqs " https://twitter.com/s_hirono/status/1091138929531641856

2019-02-01 09:59:45 "2019-02-01-095037_江村法律事務所 - Google マップ.jpg http://pic.twitter.com/HMoRTndE9R " https://twitter.com/s_hirono/status/1091139002487341056

2019-02-01 10:00:02 "2019-02-01-095108_茨城県 - Google マップ.jpg http://pic.twitter.com/E6PPnJuQtX " https://twitter.com/s_hirono/status/1091139074956513281

2019-02-01 10:00:19 "2019-02-01-095258_茨城県 - Google マップ.jpg http://pic.twitter.com/fm7ixQsltU " https://twitter.com/s_hirono/status/1091139147702493186

2019-02-01 10:00:37 "2019-02-01-095723_水戸地方裁判所 下妻支部 - Google マップ.jpg http://pic.twitter.com/T9C3f2J1as " https://twitter.com/s_hirono/status/1091139220637331456

2019-02-01 10:00:54 "2019-02-01-095817_水戸地方検察庁下妻支部・下妻区検察庁下館区検察庁 - Google マップ.jpg http://pic.twitter.com/UzxWnDyHaX " https://twitter.com/s_hirono/status/1091139293299372032

2019-02-01 10:03:03 "下妻神社の大欅(下妻神社の大ケヤキ) http://www.hitozato-kyoboku.com/shimotsumajinja-keyaki.html " https://twitter.com/hirono_hideki/status/1091139834217779200

2019-02-01 10:03:17 "下妻神社は関東鉄道下妻駅の北北西1km。  須佐之男命ほか9柱を祭神とする旧村社。正徳年間(1711~16)に藩主井上氏が八坂神社として再建。明治6年(1873)に村内各社を合併して現社名に改めた。 http://www.hitozato-kyoboku.com/shimotsumajinja-keyaki.html " https://twitter.com/hirono_hideki/status/1091139891549761536

2019-02-01 10:05:10 "下妻神社の大欅│観光・旅行ガイド - ぐるたび https://gurutabi.gnavi.co.jp/i/i_38573/ 下妻神社は、15世紀後半(文明年間)に、下妻城主多賀谷家植が「牛頭天皇」を勧請して建立したと伝えられる。以来「天王様」の称で人々に信仰され親しまれてきた。 " https://twitter.com/hirono_hideki/status/1091140366617608192

2019-02-01 10:31:02 "2019-02-01-103035_岡口基一 - Wikipedia 2011年4月 - 水戸地方裁判所水戸家庭裁判所下妻支部判事、下妻簡易裁判所判事.jpg http://pic.twitter.com/ZYQAKVzIkk " https://twitter.com/s_hirono/status/1091146876731088896

 検索のツイートは上記の通り並んでいます。下妻神社について調べた頃は余り記憶になかったのですが,江村正之検察官のことを思い出すと,一緒に岡口基一裁判官のことも思い出すことが多く,このときも確認を兼ねて調べたようです。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 2019-02-01-095108_茨城県 - Google マップ.jpg https://t.co/E6PPnJuQtX

 私の記憶ではもっと古めかしい建物だったのですが,2019-02-01-095108_茨城県 - Google マップ.jpgのスクリーンショットを見ると,本日見た最新の情報と変わりのない印象を受けました。記憶より新しく見えた建物で,ペンキの塗替えの可能性を考えていたところでした。

 本日,Googleマップで意外な新発見に感じたのは,江村法律事務所の場所というか地図上の位置です。

 国道125号線から少し入った場所ですが,この国道125号線というのは茨城県古河市国道4号線から茨城県土浦市との間の国道で,長距離トラックの仕事では何度か通行することがありました。現在の茨城県鹿嶋市からもこの国道125号線を使いました。

 平成3年の秋には石川製作所から小型ロケットを積んで,土浦市霞ヶ浦沿いの研究所のようなところに運んだのですが,これも国道125線から少し入ったところと思います。とても古いアスファルトの地面があって,ここが予科練の飛行場の跡地に間違いなさそうだと思いました。

 これまで茨城県下妻市のことで意識にあったのは,国道125号線ではなく,国道294号線になると思います。夜に通過したのが不思議なぐらい印象に残っているのですが,東京から向かったのに,東京に向かう方向で場所を探しながら走っていた記憶があります。

 これまでも何度か記述したことがあると思うのですが,朝に中央道の中津川インター付近で降り,愛知県新城市を通過して国道1号線に出て,そのまま国道1号線で東京に向かった運行でした。昭和60年のことです。夕方のまだ明るい時間には東京の渋谷付近にいました。国道246号線です。

(py37_env) ➜ ~ twilog-serch 新城市

 間違いなくあると思っていた新城市の記述がありませんでした。

 twilog-serch でいろいろと検索をやってみたのですが,探した情報にはかすることも出来ませんでした。納得がいかないというか,とても不思議です。

 吾妻で検索すると,「群馬県吾妻郡草津町」が出てきました。吾妻郡というのは意外に思ったはずですが,すぐに忘れていたようです。先日もテレビで草津温泉を見かけたのですが,銭湯で,風呂道具を片付けに脱衣所に入った時,わずかなタイミングで亀石倫子弁護士らしい姿を見たのです。

 すぐにCMに入ってしまい,CM後にはまったく別の話題になっていましたが,ワンカットのようなニュースが,だいぶん後に始まることは前にもあってので,しばらくテレビを注視していたのですが,そこで草津温泉が出てきました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 2021-03-31_175757_能都郵便局からの告発状779頁の発送・珠洲市蛸島事件現地視察まで.jpg https://t.co/2uNCcAAOTU

 思ったより最近のことで3月31日でした。江ノ島しらす丼も同じニュースにありましたが,草津のことは聖火リレーで取り上げられていたようです。この草津温泉であった問題も,どうなったのかすっかり見かけなくなり,あとで調べるつもりだったのを実行しないままになっていました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 性被害を告発した「草津女性町議」が失職した本当の理由 居住実態ナシ、前橋地検から告発 海外マスコミ含め、訂正報道しろ💢💢 https://t.co/fba2MdKyuu

〉〉〉 kk_hironoのリツイート 〉〉〉


> なぜ草津町議のリコールが成立し、愛知県知事のリコールが成立しなかったのか(大濱崎卓真) - Y!ニュース https://t.co/dO5JkoBXkK

〉〉〉 kk_hironoのリツイート 〉〉〉


> 石川優実さんらフェミが総出で連帯するとか応援するとか支持するとか言ってた新井祥子元草津町議、こんな講演してたんか… どうでもいいけど新井さん去年の12/18以降Web上の記事ほぼないのな。フェミもすっかり忘れてしまったみたいで1月以降応援のツイートなんてない。 https://t.co/9rdKUcYrR0

  • 2021年3月24日(水) 草津町議会元町議 新井祥子さん講演「本気で女性議員を増やさないと!」 | 地域から未来をつくる・ひがし広場 https://t.co/DyIGePlUEr 投稿者:jtgt 投稿日時:2021/03/22(月) 21:21

〉〉〉 kk_hironoのリツイート 〉〉〉


> 需要がないならなぜ求められたんですか? マリエさんは需要があったから求められたんですか?なかったんですか? あなたの言ってること一文で矛盾してませんか? https://t.co/TwdWUOVkUu

 前にも見たことのあるTwitterアカウントですが, 草津町議会元町議 新井祥子さんと一緒にツイートに出てきました。マリエさんとありますが,昨夜,Twitterのトレンドに島田紳助があって,それを開くとで何やら芸能界の枕営業の告発のような話題になっていました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 制服強制は、道徳や思いやりではなく人権課題。 だから、少数派のため、多数決により是非を結論づけるべきでないことは、もっと知られるべきでしょう。

  • (5) #マリエさんに連帯します - Twitter検索 / Twitter https://t.co/yiCeGCop0K \n エンターテインメント · トレンド \n #マリエさんに連帯します \n 26,557件のツイート

 Twitterのトレンドにもなっていました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> マリエがテレビで活躍してる時、島田紳助枕営業を強要されても事務所らは「紳助の仕事が無くなる」と庇わず、追い込まれた彼女をタモリ爆笑問題など、いいとも水曜レギュラー陣が守ってくれたと。映画界のワインスタインのセクハラ事件並みに酷いなと思った。 #マリエさんに連帯します https://t.co/EIJ1nkfQxC

 なぜ今ごろに島田紳助の名前が出てきたのか,芸能界復帰ぐらいしかTwitterのトレンドになるような話題はなさそうに思っていたのですが,ようやく事態が飲み込める内容のツイートを目にしました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 件の弁護士、ついてきてください、フォローしてくださいっだって。依頼してください、だって。悲しいものを感じた。もっと自己研鑽に励み、精進してがんばってもらいたいです。私を「そっち系の弁護士」とかいって揶揄してる場合じゃないよ。がんばれ。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 出川氏がしたことについて、マリエさんの言っていることが本当なら、 「レイプされようとしている被害者の足を押さえつけた」 のと同じくらいの非難と嫌悪に値すると思っている。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 「痴漢冤罪が怖い」と言ったって、 みんな「交通事故」ほども警戒してないでしょ? それで、ほとんど全ての人は、自分が「痴漢冤罪に巻き込まれる」ことなんてなかったでしょ? 「痴漢冤罪」の可能性があるとしても、そんな程度です。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 「枕」というのは、あからさまに「セックス」と言わないための「隠語」であるから、 もはや使う必要はない。 「枕強要」でなく、「セックス強要」だ。

〉〉〉 kk_hironoのリツイート 〉〉〉


> (元)芸能人のマリエさんが「私これを喋ったら殺されるかもしれない」と言いながら芸能界の枕営業についてインスタライブで語った際の録画を入手したので、公開します。 https://t.co/cq6pPwSFmk 島田紳助さんや出川哲朗さんの名前が生々しい内容と共に語られています(動画は収益化OFFにしてあります) https://t.co/DW8DCbjRtT

〉〉〉 kk_hironoのリツイート 〉〉〉


> 小室圭さん「金銭トラブル」説明で文書公表 https://t.co/bqEXwxaVsn 文書で、「結婚に対する思いに変わりはありません」とした上で、文書公表の目的について、「これまで世の中に出回ってきた金銭トラブルと言われている事柄に関する誤った情報をできる範囲で訂正する」ためとした

〉〉〉 kk_hironoのリツイート 〉〉〉


> 今日4月8日は #岡田有希子 さんの命日ですね。あれから35年経ちました。改めて合掌。 岡田有希子くちびるNetwork」輝き続ける永遠のラストシングル https://t.co/lQ90WkbU97

〉〉〉 kk_hironoのリツイート 〉〉〉


> 35年前のきょう、18歳で亡くなった #岡田有希子 さんの堀越高の同級生の顔ぶれが凄い。 南野陽子石野陽子長山洋子桑田靖子高部知子倉沢淳美宮崎萬純など。 一方で悲しい現実も。ユッコのほかに松本友里さん(松平健の妻)が命を絶ち、本田美奈子さんと菊地陽子さんが白血病で早世した。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 今から一時間前に黙祷してきました。弓指さん、縦横無尽に交通誘導したり、黙祷の呼びかけしたりと本当にすごい。ファンの方が手向けたお花は愛知県の彼女のお墓まで弓指さんが新幹線で輸送中です。 #岡田有希子 https://t.co/oaX3M080Ho

〉〉〉 kk_hironoのリツイート 〉〉〉


> 1986.4.8 当時同世代だった自分にとって あまりにも衝撃すぎて…… 気持ちが追いつかない…… ってことを初めて体験した日 あれから35年も経つんやなぁ…… 今日はこれらの曲を聴くとしよう…… #岡田有希子 https://t.co/o3YFlfIwqe

 Twitterのトレンドに懐かしい名前を見かけたと思ったのですが,35年目の命日ということで,昭和61年のことだとわかりました。当時は大きな報道になっていたと記憶にありますが,昭和61年は3月に結婚して6月に長男が生まれた年でした。来月で35歳になるようです。

 吾妻で検索をしたのは,珠洲市飯田に吾妻というところがあって,橋向いとも聞きましたが,橋の先の道路が夜に通行すると,茨城県下妻市の国道を走っていた時の状況に似ているとよく思い出していました。

 住所は珠洲市飯田町に番地があるだけですが,目立つ看板の酒店でずいぶん前からあったように思います。この店の前の道路がGoogleマップでは内浦街道となっていますが,昼のストリートビューの写真を見ても,下妻市の国道と似た雰囲気があります。

 特に変わった町並みではないと思いますが,私の中では長距離トラックの仕事であちこちに行った経験でも,まるでトランプゲームの神経衰弱のような離れた2つの場所の組み合わせのようになっていました。

 バス停があるとは知らなかったのですが,口コミだけで聞いていたような吾妻町だったので,名前と場所が確認できました。昭和55年頃に聞いた話ですが,地元では「橋向い」と呼ばれると聞き,同じ頃に,朝鮮半島日本海を川に見立てて「橋向い」というような話も聞きました。

 「はしむかい」というのは,被差別部落を意味するようにも聞こえたのですが,調べたところ,そのような歴史はなさそうでした。奥能登の場合は,日本海の向こう岸が朝鮮半島になるので,昔の人はそのような言い方をし,昭和50年代はまだそれが残っていたのかもしれません。

 地元では飯田と,町を付けた呼び方はまずしないと思うのですが,住所は珠洲市飯田町となっているようです。珠洲市の中心になる町です。金沢方面から来ると飯田町の手前が,上戸になっていると思いますが,珠洲警察署の住所も珠洲市上戸になっていたように思います。

 比較的新しい建物の珠洲警察署ですが,いつの間にか出来ていた建物で前にある広い道路が昭和の時代には影も形もなかった道路だと思います。当時は珠洲郡内浦町だった松波の町中を走り,恋路海岸の前の道路を通る他,宇出津から珠洲に行く道路はなかったと思います。

 まだ納得がいかないので調べています。痕跡ぐらいは発見したいところで,2ヶ月ほど前も少し触れているはずなのです。

  • ./kk_hirono2021-04-08_155726.csv:2020-08-14 16:26:21 "浜松市のことを昼過ぎに思い出しながら考えていたのですが,国道1号線は愛知県内のはずれから東京までトラックで走行したことがあったものの,浜松の市内というのは思い出せず,それも少し気になっていました。 " https://twitter.com/kk_hirono/status/1294173500769329152

 twitterAPI-search-lawList-mydql-add.rb 国道1号 の検索でようやくそれらしいのが出てきました。

 そのときも当時16歳だった妻を中西運輸商の4トントラックに同乗させていたのですが,九州方面から荷物の卸先の茨城県下妻市に向かっていました。会社から朝一番に荷降ろしをしてすぐに会社に電話をするように言われていました。

 夜中のうちに中央道に入っていたと思うのですが,たぶんサービスエリアで寝過ごしてしまい,朝になって会社に電話をしたところ,社長に次の仕事が決まっていたと怒られて,そのまま全線下道,高速道路を使わないで行くように言われたのです。

 最寄りのインターで恵那インターか中津川インターになると思っていたのですが,今Googleマップを拡大すると,中津川インターの手前に恵那峡サービスエリアというのがあるとわかりました。ここで寝ていた可能性があります。

 今だったら,国道19号線で長野県松本市に出て,国道20号線で東京都八王子市に向かうと思うのですが,行楽日和の天候であったとも記憶にあり,ふと東海道を走ってみるという選択をしたようです。

 新城市に出る前の農村部の風景と,静岡県清水市辺りで国道沿いに屋台で売っていた鰻の蒲焼を食べたのが記憶と印象に残っています。大きな串焼きになっていたような気もしますが,道端に屋台で鰻が売っていたのは,後にも先にも見たことがありません。

 下妻市は夜中に結城市から向かったような記憶が少し残っていて,引き返すようなかっこうですが,住所を勘違いして結城市に向かったのかもしれません。他には経験のないことで,秋田県の十和田インターと青森県十和田市を間違って,十和田インターに向かったぐらいでした。

 茨城県下妻市のことは夜のことしか記憶になく,どんな場所でどんな荷物を荷降ろししたのかもまったく憶えていないのですが,やたらと印象に残る心の風景で,それが自分の運命を最初に決定づけた江村正之検察官が弁護士を始めた土地らしいとしったのも奇縁を感じるところでした。

#令和3年3月31日付告発状 補充書01### 本件告発事件で,傷害・準強姦被告事件を起訴し,懲役4年の論告求刑を行った検事,江村正之検察官に関する過去記事,過去ツイートのまとめと,最新検索

:CATEGORIES: @kanazawabengosi #金沢弁護士会 @JFBAsns 日本弁護士連合会(日弁連) #法務省 @MOJ_HOUMU #江村正之検察官

 Googleで江村正之の画像検索を行いました。今回も江村法律事務所以外に江村正之検察官本人につながる情報は出ていない感じです。今は江村正之弁護士という方が正確なのかもしれないですが,本件告発事件では検事をやめたとて過去は消されるはずもなく,江村正之検察官という重要人物です。

 2021年04月08日12時53分の実行記録 \n twitterAPI-search-lawList-mydql-add.rb "江村正之" \n ツイート数:18/2385 リツイート数:0/2385 トータル:18 \n hirono_hideki 4/0件 \n kk_hirono 9/0件 \n s_hirono 5/0件

 江村正之検察官本人に繋がる情報は発見されなかったのですが,いくつか意外な発見がありました。次のPukiWikiのページですが,かなり久しぶりに見かけたもので,またおかしな文字化けが発生しています。趙誠峰弁護士のレストラン依頼です。

 今はほとんどみかけることのないWikiですが,Markdownが主流となってから姿を消したように思います。PukiWikiのサイドメニューをみると最新20の最後が2011年6月12日となっています。その日が最後の更新となっていたようです。

 当時は他にもいくつかWikiのサービスを使ったことがありました。Googleサイトもこれに近いものがありました。Googleサイトは一年ほど前にも少し使ってみた記憶があります。利用例はみかけないのですが,氷見国賠訴訟の弁護団Googleサイトを使っていました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 当サイトは、国などを相手取り国賠を提訴した柳原浩さんの富山(氷見)冤罪国賠を支える会のホームページです。 http://t.co/mkQGaq5cAi ← 協力をバックアップ、サポートしているような物言いですが、誰も見向きもしない勝訴の見込みもない裁判に付き合わされているような

  • toyamakokubai https://t.co/aFYsE2XkSP \n 富山冤罪国賠を支える会 \n 私たちは、柳原さんの国賠裁判を支え、ともに冤罪の根絶をめざして努力したいと思います。そのために、「富山冤罪国賠を支える会」を発足し、これまで様々な国賠裁判を通じて蓄えてきた経験や知恵を活かし、冤罪の真相を明らかにしてい

〉〉〉 kk_hironoのリツイート 〉〉〉


> 岡口基一 - Wikiwand https://t.co/eqMG7CeSUe 2011年4月 - 水戸地方裁判所下妻支部判事・水戸家庭裁判所下妻支部判事、下妻簡易裁判所判事[5]。

#令和3年3月31日付告発状 補充書01### 2021年4月7日の朝から翌8日未明まで20時間ほど掛かって作成した,ツイートをテキスト保存するスクリプト

:CATEGORIES: @kanazawabengosi #金沢弁護士会 @JFBAsns 日本弁護士連合会(日弁連) #法務省 @MOJ_HOUMU #スクリプト #プログラミング

 寝ていた時間も含めてですが20時間ほど掛かったように思います。次のツイートがようやく完成した頃の投稿になります。タイムラインには4時間前と表示されています。


> (py37_env) ➜ twilog wc -l *.csv
> 227225 hirono_hideki20210408054207.csv
> 137286 kk_hirono20210408054209.csv
> 79830 s_hirono20210407224547.csv
> 444341 合計

 今回はこのあとソースコードを公開しようと思います。告発状でもご紹介したTwilogのテキストデータですが,TwitterAPIからツイートを取得して追加をするようにしました。3件のアカウントで10分程掛かっていた処理が1秒足らずで終わるようになりました。

(py37_env) ➜  twilog wc -l *.csv
   227259 hirono_hideki20210408102712.csv
   137294 kk_hirono20210408104001.csv
    79835 s_hirono20210408102047.csv
   444388 合計

 20210408104001という部分が最終更新時刻になりますが,やはり読みづらく勘違いする可能性もありそうなので,これは早めに修正をしておいた方がよいかと考えました。

now_time = Time.now.strftime("%Y-%m-%d_%H%M%S")
newFile = "#{@dir}#{user}#{now_time}.csv"
check = Dir.glob("#{@dir}#{user}[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv").join
check = Dir.glob("#{@dir}#{user}[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv").join

 上記の箇所に問題があることに気が付きました。Dir.globでは正規表現が使えないということです。

 次の方法でうまくいきそうです。もっと簡単に済ませる方法はあるのですが,プログラミングの上達のためによりよい方法を模索しています。

Dir.glob("#{@dir}*").grep(/s_hirono[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv/)

 ようやくうまくいきました。.joinは必要なさそうでしたが,これは返却値が配列になっているのを文字列に型変換する処理です。文字列として扱うことを明示しておいた方がよいのかと考えていましたが,配列のままでもcheck.empty?の条件式は同じでした。

(py37_env) ➜  twilog wc -l *.csv
   227262 hirono_hideki2021-04-08_114623.csv
   137300 kk_hirono2021-04-08_114405.csv
    79836 s_hirono2021-04-08_114625.csv
   444398 合計

 それではソースコードの掲載です。今朝になっての思いつきですが,江村正之検察官について先に取り上げておこうかと思います。

#!/usr/bin/env ruby
#encoding:UTF-8
#告訴状-2013-金沢地方検察庁御中_API
require 'twitter'
require 'open-uri'
require 'time'
require "fileutils"

@users = ['hirono_hideki','kk_hirono','s_hirono']
@dir = "/home/a66/twilog/"
@dir=ARGV[0].dup if ARGV[0]

if @dir !~ /^\/.+/ then
  puts "ディレクトリは絶対パスで指定して下さい!"
  exit 1
end

if @dir !~ /.+\/$/ then
  @dir.sub!(/(.+)/){ $1 + '/'}
end

#@users = ['s_hirono']

def twilogFileAdd(user)
    tweets = Array.new
    # ログイン
    client = Twitter::REST::Client.new do |config|
    config.consumer_key = 'カスタマーキー'
    config.consumer_secret = 'カスタマーシークレット'
    config.access_token = 'アクセストークン'
    config.access_token_secret = 'トークンシークレット'
    end

    client.user_timeline("#{user}", {:count => "300", :page => "1", :tweet_mode =>"extended"}).each do |tweet|
        tw_url =  "https://twitter.com/#{tweet.user.screen_name}/status/#{tweet.id}"
        tw_date = "#{(tweet.created_at + (60 * 60 * 9)).strftime("%Y-%m-%d %H:%M:%S")}"
        user = tweet.user.screen_name
        name = tweet.user.name
        tweet_text = tweet.full_text
        tweets << "#{tw_date} \"#{tweet_text.gsub(/(\r\n|\r|\n|\f)/,'\n').gsub('"', '\\\"')}\" #{tw_url}"
    end

    puts "#{user} #{tweets.size}件を取得しました。"

    now_time = Time.now.strftime("%Y-%m-%d_%H%M%S")
    newFile = "#{@dir}#{user}#{now_time}.csv"
    check = Dir.glob("#{@dir}*").grep(/s_hirono[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv/).join

    unless File.directory?(@dir) then
      puts "#{@dir}#{user}[0-9]*.csv"
      FileUtils.mkdir_p(@dir)
          `touch "#{newFile}"`
    end

    if check.empty? then
          File.open(newFile, "w") do |io|
            tweets.each do |x|
              io.puts(x)
            end
          end

          puts "#{newFile}を新規に作成しました。\n\n"
          return
    end

    twilogFile = `find "#{@dir}" -name '*.csv' | grep -E "#{@dir}#{user}[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv"`
    puts twilogFile.chomp!

    oldFile = twilogFile.chomp
    lastDate = `head -n 1 "#{twilogFile.chomp}"`
    lastDatePoint = lastDate.scan(/^([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}) .+/)[0]
    search_text = lastDatePoint.join
    n = tweets.index(tweets.select { |e| e =~ %r{^#{search_text}.*} }.join)
    now_time = Time.now.strftime("%Y-%m-%d_%H%M%S")
    updateFile = "#{@dir}#{user}#{now_time}.csv"

    if n == 0 then
      puts "更新なし\n\n"
      return
    else
      puts "#{n}件の更新です。"
    end

    #tweets.reverse!
    tweets[0..n-1].each do |x|
      puts x
    end

    cmd = "cp #{oldFile} #{updateFile}"
    `#{cmd}`

    File.open(updateFile, "r+") do |io|  ## ブロックにすると最後に"io.close"を書く手間が省けます
      line = io.read  ## 引数なしのreadは行末まで読み込みます
      io.seek(0) ## io#seekは先頭からのオフセットを指定する場合1引数で書けます
      tweets[0..n-1].each do |x|
        io.write(x)
        io.write("\n")
      end

      io.write(line)
    end

    if oldFile == updateFile then
      return
    end

    FileUtils.rm(oldFile)

    puts "#{n}件を追加した#{updateFile}を新規作成し,#{oldFile}を削除しました。\n\n"
end

#twilog/hirono_hideki210407.csv  twilog/kk_hirono210407.csv  twilog/s_hirono210407.csv
@users.each do |u|
    twilogFileAdd(u)
end

 :count => "300"とハッシュ値の値を指定していますが,200件しか取得できないと思います。ただ,2,3日前同じ処理をするコマンドで300件の取得が出来たことがあり,TwitterAPIの仕様が変わったのかと思いました。多めに指定してもエラーはでないようです。

 時刻は12時03分ですが,昨日4月7日のほぼ同じ時間に,このスクリプトの本体は出来上がっていました。そのあと難儀し時間がかかったのは,ディレクトリーを指定し,新規にファイルを作成する場合の処理です。

 共通したコードを数箇所に貼り付けていけば,簡単に処理の分岐ができたのですが,無駄にコードが増えると全体の可読性が悪くなるので,その辺りも勉強のつもりで取り組んでみました。

#令和3年3月31日付告発状 補充書01### 2021年4月7日の朝から翌8日未明まで20時間ほど掛かって作成した,ツイートをテキスト保存するスクリプト

:CATEGORIES: @kanazawabengosi #金沢弁護士会 @JFBAsns 日本弁護士連合会(日弁連) #法務省 @MOJ_HOUMU #スクリプト #プログラミング

 寝ていた時間も含めてですが20時間ほど掛かったように思います。次のツイートがようやく完成した頃の投稿になります。タイムラインには4時間前と表示されています。


> (py37_env) ➜ twilog wc -l *.csv
> 227225 hirono_hideki20210408054207.csv
> 137286 kk_hirono20210408054209.csv
> 79830 s_hirono20210407224547.csv
> 444341 合計

 今回はこのあとソースコードを公開しようと思います。告発状でもご紹介したTwilogのテキストデータですが,TwitterAPIからツイートを取得して追加をするようにしました。3件のアカウントで10分程掛かっていた処理が1秒足らずで終わるようになりました。

(py37_env) ➜  twilog wc -l *.csv
   227259 hirono_hideki20210408102712.csv
   137294 kk_hirono20210408104001.csv
    79835 s_hirono20210408102047.csv
   444388 合計

 20210408104001という部分が最終更新時刻になりますが,やはり読みづらく勘違いする可能性もありそうなので,これは早めに修正をしておいた方がよいかと考えました。

now_time = Time.now.strftime("%Y-%m-%d_%H%M%S")
newFile = "#{@dir}#{user}#{now_time}.csv"
check = Dir.glob("#{@dir}#{user}[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv").join
check = Dir.glob("#{@dir}#{user}[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv").join

 上記の箇所に問題があることに気が付きました。Dir.globでは正規表現が使えないということです。

 次の方法でうまくいきそうです。もっと簡単に済ませる方法はあるのですが,プログラミングの上達のためによりよい方法を模索しています。

Dir.glob("#{@dir}*").grep(/s_hirono[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv/)

 ようやくうまくいきました。.joinは必要なさそうでしたが,これは返却値が配列になっているのを文字列に型変換する処理です。文字列として扱うことを明示しておいた方がよいのかと考えていましたが,配列のままでもcheck.empty?の条件式は同じでした。

(py37_env) ➜  twilog wc -l *.csv
   227262 hirono_hideki2021-04-08_114623.csv
   137300 kk_hirono2021-04-08_114405.csv
    79836 s_hirono2021-04-08_114625.csv
   444398 合計

 それではソースコードの掲載です。今朝になっての思いつきですが,江村正之検察官について先に取り上げておこうかと思います。

#!/usr/bin/env ruby
#encoding:UTF-8
#告訴状-2013-金沢地方検察庁御中_API
require 'twitter'
require 'open-uri'
require 'time'
require "fileutils"

@users = ['hirono_hideki','kk_hirono','s_hirono']
@dir = "/home/a66/twilog/"
@dir=ARGV[0].dup if ARGV[0]

if @dir !~ /^\/.+/ then
  puts "ディレクトリは絶対パスで指定して下さい!"
  exit 1
end

if @dir !~ /.+\/$/ then
  @dir.sub!(/(.+)/){ $1 + '/'}
end

#@users = ['s_hirono']

def twilogFileAdd(user)
    tweets = Array.new
    # ログイン
    client = Twitter::REST::Client.new do |config|
    config.consumer_key = 'カスタマーキー'
    config.consumer_secret = 'カスタマーシークレット'
    config.access_token = 'アクセストークン'
    config.access_token_secret = 'トークンシークレット'
    end

    client.user_timeline("#{user}", {:count => "300", :page => "1", :tweet_mode =>"extended"}).each do |tweet|
        tw_url =  "https://twitter.com/#{tweet.user.screen_name}/status/#{tweet.id}"
        tw_date = "#{(tweet.created_at + (60 * 60 * 9)).strftime("%Y-%m-%d %H:%M:%S")}"
        user = tweet.user.screen_name
        name = tweet.user.name
        tweet_text = tweet.full_text
        tweets << "#{tw_date} \"#{tweet_text.gsub(/(\r\n|\r|\n|\f)/,'\n').gsub('"', '\\\"')}\" #{tw_url}"
    end

    puts "#{user} #{tweets.size}件を取得しました。"

    now_time = Time.now.strftime("%Y-%m-%d_%H%M%S")
    newFile = "#{@dir}#{user}#{now_time}.csv"
    check = Dir.glob("#{@dir}*").grep(/s_hirono[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv/).join

    unless File.directory?(@dir) then
      puts "#{@dir}#{user}[0-9]*.csv"
      FileUtils.mkdir_p(@dir)
          `touch "#{newFile}"`
    end

    if check.empty? then
          File.open(newFile, "w") do |io|
            tweets.each do |x|
              io.puts(x)
            end
          end

          puts "#{newFile}を新規に作成しました。\n\n"
          return
    end

    twilogFile = `find "#{@dir}" -name '*.csv' | grep -E "#{@dir}#{user}[0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{6}.csv"`
    puts twilogFile.chomp!

    oldFile = twilogFile.chomp
    lastDate = `head -n 1 "#{twilogFile.chomp}"`
    lastDatePoint = lastDate.scan(/^([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}) .+/)[0]
    search_text = lastDatePoint.join
    n = tweets.index(tweets.select { |e| e =~ %r{^#{search_text}.*} }.join)
    now_time = Time.now.strftime("%Y-%m-%d_%H%M%S")
    updateFile = "#{@dir}#{user}#{now_time}.csv"

    if n == 0 then
      puts "更新なし\n\n"
      return
    else
      puts "#{n}件の更新です。"
    end

    #tweets.reverse!
    tweets[0..n-1].each do |x|
      puts x
    end

    cmd = "cp #{oldFile} #{updateFile}"
    `#{cmd}`

    File.open(updateFile, "r+") do |io|  ## ブロックにすると最後に"io.close"を書く手間が省けます
      line = io.read  ## 引数なしのreadは行末まで読み込みます
      io.seek(0) ## io#seekは先頭からのオフセットを指定する場合1引数で書けます
      tweets[0..n-1].each do |x|
        io.write(x)
        io.write("\n")
      end

      io.write(line)
    end

    if oldFile == updateFile then
      return
    end

    FileUtils.rm(oldFile)

    puts "#{n}件を追加した#{updateFile}を新規作成し,#{oldFile}を削除しました。\n\n"
end

#twilog/hirono_hideki210407.csv  twilog/kk_hirono210407.csv  twilog/s_hirono210407.csv
@users.each do |u|
    twilogFileAdd(u)
end

 :count => "300"とハッシュ値の値を指定していますが,200件しか取得できないと思います。ただ,2,3日前同じ処理をするコマンドで300件の取得が出来たことがあり,TwitterAPIの仕様が変わったのかと思いました。多めに指定してもエラーはでないようです。

 時刻は12時03分ですが,昨日4月7日のほぼ同じ時間に,このスクリプトの本体は出来上がっていました。そのあと難儀し時間がかかったのは,ディレクトリーを指定し,新規にファイルを作成する場合の処理です。

 共通したコードを数箇所に貼り付けていけば,簡単に処理の分岐ができたのですが,無駄にコードが増えると全体の可読性が悪くなるので,その辺りも勉強のつもりで取り組んでみました。

#令和3年3月31日付告発状 補充書01### 「弁護士にとっても負担感、徒労感が大きいわけですよ。それが国選、法テラスだと実入りも少ない。」という深澤諭史弁護士のリツイート

:CATEGORIES: @kanazawabengosi #金沢弁護士会 @JFBAsns 日本弁護士連合会(日弁連) #法務省 @MOJ_HOUMU #深澤諭史弁護士 #国選刑事弁護

> RT @lit_soc: 無理筋否認の刑事事件とか面会交流が泥沼化してる離婚事件とか、弁護士にとっても負担感、徒労感が大きいわけですよ。それが国選、法テラスだと実入りも少ない。それでもやるのは職業的使命感を持ってるから。弁護士がやるしかないから。それでも「金儲けのため」と言われたらもう好きにしてって感じ。


アカウント名 ツイート数 リツイート
とろろ(lit_soc) 1 0
えきなんローヤー?(ekinan_lawyer) 0 1
豚野郎(butayar0) 0 1
リーチ一発ツモ裏1(luckymangan) 0 1
どくめろん(B25434721) 0 1
きたぐにのふわもこ(kitaguni_b) 0 1
okumuraosaka(okumuraosaka) 0 1
赤ネコ@弁護士兼マンガ家(Redips00) 0 1
黒田法律事務所 弁護士黒田厚志(kurodalawoffice) 0 1
Yamashita_y(crusing21) 0 1
奉納\さらば弁護士鉄道・泥棒神社の物語(hirono_hideki) 1 0

 時刻は4月6日6時56分になります。4時少し前に目が覚めて起きています。VSCodeでターミナルのプロンプトが表示されない,コマンド入力を受け付けないという問題があったのですが,設定を削除し,インストールし直しても同じでした。

 今日はWindows10パソコンで祭礼委員会の用事を済まさなければなりません。遅くとも午前中には済ませたいところです。


> 2021-04-06-061958_深澤諭史さんがリツイートとろろ@lit_soc·4月4日無理筋否認の刑事事件とか面会交流が泥沼化してる離婚事件とか、弁護士にとっても負担感.jpg https://t.co/0LWxrZdcDp

 最初,深澤諭史弁護士のタイムラインではなく次のまとめ記事の該当箇所で気がついた深澤諭史弁護士のリツイートでした。タイムラインで見落としがあったのかと思ったのですが,あとで深澤諭史弁護士のタイムラインで最新から2番目のツイートだとわかりました。

 久しぶりに見かけたようなアカウントのツイートでしたが,ブロックされているアカウントではなかったようです。奉納\さらば弁護士鉄道・泥棒神社の物語(@hirono_hideki)でもリツイートができました。

〉〉〉 kk_hironoのリツイート 〉〉〉


> 無理筋否認の刑事事件とか面会交流が泥沼化してる離婚事件とか、弁護士にとっても負担感、徒労感が大きいわけですよ。それが国選、法テラスだと実入りも少ない。それでもやるのは職業的使命感を持ってるから。弁護士がやるしかないから。それでも「金儲けのため」と言われたらもう好きにしてって感じ。

 特段おかしいと思うような内容のツイートではないですが,深澤諭史弁護士のリツイートとなるとこれまでの積み重ねがあるだけに異様で弁護士に対する危機感を高める内容に変貌します。魂の入った人形という感じでしょうか。弁護士魂の憑依漂着現象とでもいったような感じです。

 なかには依頼者に理不尽な対応をされ,それがトラウマになる弁護士というのもいるものと推測はしますが,深澤諭史弁護士の言動の積み重ねの上では,他を除外した独善性の塊のようなものです。あらゆる可能性の除外がある弁護士脳の思考プロセスです。