Re: [問卦] 請問有2021首PO的八卦嗎?
自己問卦自己回
本人發誓要是搶到首 PO
便再也不搶了,並且將程式碼釋出
因此有了此篇說明教學與演算法說明
教導各位如何順利地搶下首 PO
備註: 此程式釋出後,可能提升搶首 PO 難度
施主請盡可能找到 ping 值較低的環境
首先是使用說明
0. 事先準備 ping ws.ptt.cc 在 3ms 以下的環境
例如: 學術網路等,有高速網路中心加持事半功倍
本人採用了兩個環境使用同一個演算法搶
一台在交大實驗室
電腦是第三代 i7 記憶體時脈 1333MHZ
ping 3 ms
一台是本魯宅家 300 Mbps 的光纖網路
Ryzen7 3700X 記憶體時脈 3600MHZ
ping 4~5 ms
分別位列第一二名
https://i.imgur.com/a338kMm.png
除了證明演算法有用,搶到首 PO 的是 ping 較低的環境
雖然是三代 U 但可見網路速度佔了一大部分的勝利因子
1. 安裝 python & pip install PyPtt
搜尋 python 找到官網之後,下載最新版本即可
記得將 python 加入 path 或者自行建立 python 虛擬環境 venv
2. 修改程式碼參數
ptt_id, ptt_pw = 'PTT id', 'PTT pw'
release = False
請填上你的 PTT 帳密,如有安全疑慮可自行 code review
具備正式與測試的參數設定
一年一度的搶首 PO 盛事
最好事先設定好免得因為時間快到而手忙腳亂
3. 好好測試然後上路
演算法說明
我採用一個帳號兩個登入
一個負責與 PTT 對時
一個負責貼文
對時這件事非常重要
因為 PTT 主機的時間可能跟 time server 是不一致的
當你需要計較到 1 毫秒的差異的時候
你就需要有 API 可以跟 PTT 對時
請參考 PyPtt get_time api
https://git.io/JLd2g
因為很多失敗的例子都是文章列表顯示 1/1
可是文章裡面的時間卻是 23:59:59
根據 holishing 大大在 2017 年的文章
https://www.ptt.cc/bbs/PttNewhand/M.1483200003.A.415.html
我節錄一下內文
======節錄內文=====
直接按下 Enter 的時間或是按完 s 之後再按下 Enter 的那一瞬間
就是決定你內文記錄顯示的發文時間
而之後選完簽名檔後按下 Enter 的時間點 決定文章在板上文章列表的順序。
======內文結束======
也就是說當儲存檔案輸入完 s 按下 enter 之前的動作
可以在新年的 00:00:00 的之前發生
這樣一來我們可以先做好編輯文章並按下 ctrl + x 輸入好 s
然後靜靜的等待時間到來
這樣就可以減少發文瞬間的網路通訊量,你想貼出師表都可以
另一個登入,負責 PO 文
時間快到了,就打開編輯文章,按下 ctrl+x 輸入好最後的 s 只差 enter
當偵測到 00:00 了,瞬間按下 enter,選好簽名檔
最後附上流程示意圖
https://i.imgur.com/fhn5gFh.png
附上程式碼
https://github.com/PttCodingMan/PTT_bots/tree/master/first_post
最後感謝 PyPtt 提供技術支援
https://github.com/PttCodingMan/PyPtt
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.91.100 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1609682293.A.060.html
→
01/03 21:59,
3年前
, 1F
01/03 21:59, 1F
推
01/03 22:00,
3年前
, 2F
01/03 22:00, 2F
推
01/03 22:26,
3年前
, 3F
01/03 22:26, 3F
推
01/03 23:13,
3年前
, 4F
01/03 23:13, 4F
推
01/04 10:07,
3年前
, 5F
01/04 10:07, 5F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
問卦
191
241