kiyo_hikoのブログ

メモ+日記?

ツイートに名前を付けて保存するために「ツイートID@ユーザーID」の文字列を一発で作る

標題の事がやりたくてPowerShellのミクロなアプリ作って実現したので以下にまとめます。
この記事の流れは次のようになります。(目次って貼れるのかな)

  • 背景・概要
  • 導入手順
  • 使い方
  • 注意点
  • 改良したいこと

背景・概要

ツイートをブラウザーから「HTML、完全」で保存しようとしたが、保存しようとすると以下のような超絶長いファイル名が表示されて凹んでます。

名無しさんはTwitterを使っています 「ころたんイェイ~ #咲-Saki- #天江衣 https___t.co_xxxx https___t.co_xxxx」 _ Twitter

画像とか単発のファイルなら後からリネームすればよいのだけども、HTML、完全はフォルダーまでくっついてくるので取り回しが悪すぎる。
ここでツイートのURLを見ると、以下のようになっています。

http://twitter.com/ユーザーID/status/ツイートID

ということは、記事タイトルのような ツイートID@ユーザーID の文字列を作って改めてWebページ、完全で保存すれば ファイル名すっきりだし、絶対に一意であるし、URLも復元できるしハッピーなんじゃなかろうかと思いました。

そのような文字列をクリップボードに用意する、小さなPowerShellアプリを作ります。
作成後は、以下の手順でクリップボードに文字列が貼り付けられます。

  • ブラウザーでツイートを開く → URLをコピーする → タスクバーのアプリをクリック

ブラウザー拡張機能で作った方がより楽できるかもですが、勉強めんどくさいので…。

導入手順

大雑把には、以下の3ステップで進めます。

  1. 文字列変換を担うPowerShellスクリプトを用意する。
  2. 実行するためのショートカットを作成する。
  3. タスクバーにピン留めする。

では以下、詳細。

PowerShellスクリプトを用意する

書いたものを置いときます。
コピペしてメモ帳なり、PowerShell ISEなり使って、とにかくテキストで拡張子を「.ps1」にして保存すればOKです。
ファイル名は、この記事の手順としては以下にしました。

twitter-make-id.ps1

間違って消さないように、デスクトップやドキュメントではなく、 MyPowerShell とか何でも、まあそれなりのフォルダーを切って保存した方が良いです。

# Twitter URLから、名前を付けて保存用に「ツイートID @ ユーザーID」形式の文字列を作る
# http://*.twitter.com/ユーザーID/status/ツイートID の形式に対応
# 使い方
# 1.保存したいTweetのURLをブラウザーからコピー
# 2.このスクリプトを実行
# 3.文字列はクリップボードに上書きされるので、好きな用途に使う
# 作成:2021. 5. 4

$orig = Get-Clipboard
$orig -replace "^`r?`n", ""
$orig -replace "`r?`n$", ""
$orig -match "/([^/]+)/status/([^/]+)"
$matches[2] + "@" + $matches[1] | Clip

このスクリプト内の個別のコマンドの操作については以下のサイトを参考にさせてもらいました。

実行するためのショートカットを作成する

前手順で作ったps1スクリプトと同じフォルダーにショートカットを作ります。
(やり方:ps1スクリプトを右クリック→ ショートカットの作成(S)

作ったら今度はショートカットの方を右クリックして プロパティ(R) を表示し、 リンク先(T)実行時の大きさ(R) を編集します。
それ以外はデフォルトでOKです。

  • リンク先:ps1のフルパスが表示されていると思いますが、その文字列の前に、次の文字列を貼り付ける
    • powershell -ExecutionPolicy RemoteSigned -File
    • ※最後の -File の後とps1フルパスの間に半角スペースを置いてください。
  • 実行時の大きさ:必須ではないが、そのままだと実行するたびに一瞬コンソールウィンドウが表示されてウザいので、最小化状態で実行するようにします。

画像の2要素。リンク先、ps1が見えてて貼り付ける文字列が見えてないですが…。

f:id:kiyo_hiko:20210504070803j:plain
自作twitter-make-idスクリプトのショートカット

以下のサイトを参考にさせてもらいました。

qiita.com

タスクバーにピン留めする

前手順で作ったショートカットを右クリックし、 タスクバーにピン留めする(K) を選ぶと、タスクバーにアイコンが貼られます。

f:id:kiyo_hiko:20210504071134j:plain
タスクバーにPowerShellショートカットをピン留め

実行時はこれをクリックします。
導入手順は以上です。

使い方

  1. ブラウザーで表示しているツイートのURLをクリップボードにコピーします。
    • Alt-DCtrl-C とかが早いかな?
  2. タスクバーのtwitter-make-idのアイコンをクリックします。
  3. クリップボードツイートID@ユーザーID 文字列がコピーされるので、保存ファイル名にペーストするなど、自由に使います。

注意点

クリップボードを操作するので、ぶっ壊れては困るデータを保持しているときにクリックしないよう気を付けてください。
想定外でクリックしても大した害はないと思いますが、利用は自己責任で。

改良したいこと

アイコンがPowerShellのデフォルトになってしまうので、わかりやすいアイコンがあった方がいいかも知れないです。
その場合、タスクバーからいったん外してから、ショートカットのプロパティでアイコンを変更し、改めてタスクバーにピン留めしてください。