sksat / sksat_bot_tw

training ruby
https://twitter.com/sksat_bot
1 stars 1 forks source link

ID→ツイート時間を求める計算式 #1

Closed kgtkr closed 6 years ago

kgtkr commented 6 years ago

多くのサイトでは((id >> 22) + 1288834974657)と紹介されていますが、このbotは((id >> 22) + 1288834974567)となっています。 これは意図的な物でしょうか?それともバグでしょうか? この計算式違いにより-90msの差が出てしまっているようです。

sksat commented 6 years ago

Twitterで教えてもらったものをそのまま使っていたので確かに間違っているかもしれません.確認します.

sksat commented 6 years ago

https://github.com/twitter/snowflake/blob/scala_28/src/main/scala/com/twitter/service/snowflake/IdWorker.scala Twitterのstatus id生成に使われているsnowflake(正確には,現在のものは公開されていないが実際はやっていることはほぼ同じ,とのこと)のコードを参照したところ,確かに基点となっているunix timeはご指摘の通り1288834974657のようです.修正します.