リダイレクト(つづき)

 2024-05-23 リダイレクト

| タイムスタンプに tweet 時ではなく、登録時のものが紛れ込み

これは、

 2020-09-12 bookmarks の各記事のタイムスタンプ

の際に、

 TW_EPOCH = 1288834974657 # 単位:ミリ秒
 MASK_T = "111111111111111111111111111111111111111110000000000000000000000"

 def get_timestamp(url)
  return nil unless url =~ /https:\/\/twitter.com\/.+?\/status\/(\d+)/ # (*)
  timestamp_b = ($1.to_i & MASK_T.to_i(2)).to_s(2)
  timestamp = ("%063d" % timestamp_b.to_i )[ 0,41].to_i(2)
  return Time.at((timestamp + TW_EPOCH) / 1000.0)
 end

のようなコードを実装して、nil 以外が返った場合、得られた tweet 日時を用いる
ようにしていたら、ドメインが twitter.com → x.com に変って、(*) が機能しなく
なったのでした。暫く気づかなかった。

登録済の x.com ドメインブックマークを網羅的に更新するスクリプトを臨時に実行して
是正したのですが、思い出してみると、2020-09-12 の記事の際には遡って tweet 日時
には直していません。それ以前のものは手作業で日付のみ tweet 日に直していたのです。

せっかく臨時スクリプトを書いたのですが、相当膨大な差分が発生しそうなので、
2020-09-12 以前のものは、当面そのままにしておこうと思います。
# 今回とは異なり日付はあっているので…

この記事へのコメント