Coder Social home page Coder Social logo

pyptt / pyptt Goto Github PK

View Code? Open in Web Editor NEW
684.0 35.0 91.0 11.95 MB

直接連線登入的 PTT library,支援 PTT, PTT2

Home Page: https://pyptt.cc/

License: GNU Lesser General Public License v3.0

Python 99.74% Batchfile 0.02% Shell 0.23%
websockets ptt crawler telnet library python3 python

pyptt's Introduction

PyPtt

Package Version PyPI - Downloads test PyPI - Python Version License: LGPL v3 chatroom icon Donate

PyPtt (PTT Library) 是一套 Pure Python PTT API 是目前支援最完整的 PTT API。具備大部分常用功能,無論推文、發文、取得文章、取得信件、寄信、發 P 幣、丟水球,你都可以在這裡找到完整的使用範例

使用帳號登入,支援使用登入之後才可以使用的功能,例如:推文、發文、寄信、發 P 幣等等

本專案意旨在提供 PTT 自動化機器人函式庫,無意違反任何 PTT 站方規範。如有牴觸,請馬上告知。

安裝

pip install PyPtt

回報問題

請參考 常見問題 章節

加入 PyPtt 社群

你可以在 Telegram 上找到 PyPtt 社群 chatroom icon

贊助

如果這個專案對你有幫助,贊助我一杯咖啡吧!!

Donate

贊助清單

leftc

pyptt's People

Contributors

arkuyo avatar arthurduh1 avatar baconbao avatar dependabot[bot] avatar gnin avatar hackmd-deploy avatar lemotw avatar openopentw avatar pttcodingman avatar smailzhu avatar tsoliangwu0130 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyptt's Issues

支援 i18n

1.ptt.py檔案有點長 有無考慮重構一下?
2.雖然PTT主要使用中文 但有些時候可能會在僅支援英文的電腦上執行BOT 這時候錯誤訊息需要是英文的比較方便.
有修改的意願嗎?
或著我找時間幫你改?

搜尋選項可加入更多功能

原本的程式碼

if Search != '':
    SendMessage += '/' + Search + '\r'

可增加參數SearchBy,可接受a、Z、G、A等

if Search != '' :
    if SearchBy == '':
        SendMessage += '/' + Search + '\r'
    else
    SendMessage += SearchBy + Search + '\r'

即可以搜尋推文、作者等,也可以再增加不列(!)功能。

查詢的文章推文數為None

我在用 PTT.API() 的 get_post 時會遇到回傳的 post 的 push_number 為 NoneType
查詢是先 get_newest_index ,得到 index 在用 for 去篩選各文章。

當登入者信箱超過上限時不會提示

如果登入的使用者他的個人信件炸掉的時候
畫面不會有任何提示
就變成他會一直重新登入,無限迴圈
看是否遇到這種狀況的時候就跳提示,並終止無限迴圈的問題。

get_newest_index 搜尋條件未符合之回傳值問題

例如在 Steam 版搜尋作者 ggaass,但因為該版沒有該作者的文章,會回傳該版 最大文章編號

這個其實沒有問題,因為實際在 ptt 操作下,用 a/ 搜尋,若沒有符合的搜尋結果,畫面是不會動的。

但利用 get_newest_index 搜尋時,是否可以加入判斷,若搜尋結果的文章編號 == 該版的最新文章編號,則拋出 exception 或是 index=0

「信箱已滿」不應視為登入錯誤

在遇到信箱已滿訊息時,輸入 qq 還是可以進入主功能表。至於「從主功能表進入私人信件區後就出不來」的問題,可以改變進入信箱的方式︰使用快速鍵 ^zm

取得大範圍文章會卡住

程式碼

Board='Stock'
SearchType=PTT.PostSearchType.Keyword
Condition='盤中閒聊'
TestRange = 100
NewestIndex = PTTBot.getNewestIndex(
    PTT.IndexType.Board,
    Board,
    SearchType=SearchType,
    SearchCondition=Condition,
)
StartIndex = NewestIndex - TestRange + 1
print(f'預備爬行 {Board} 編號 {StartIndex} ~ {NewestIndex} 文章')
ErrorPostList, DelPostList = PTTBot.crawlBoard(
    crawlHandler,
    Board,
    StartIndex=StartIndex,
    EndIndex=NewestIndex,
    SearchType=SearchType,
    SearchCondition=Condition,
)

debug

查詢無名片用戶 ParseError

若使用者沒有名片,則在這行中的 Data string list 長度則會有 11 行 (第 11 行為:<user> 目前沒有名片),進而觸發 Exceptions.ParseError(OriScreen) 導致使用者資料擷取失敗。

原始資料中出現 backspace (\x08)

image

PTT 在輸出特殊字元如「♥」的時候,會印出

  1. 兩個格空格
  2. 兩個 backspace
  3. 該特殊字元
  4. 移位碼

用意是抹掉原先在畫面上的文字,並確保輸出時的寬度保持在整數(該特殊符號的寬度介於 1~2 之間)

因文章編輯後格式錯誤 造成無法解析的清況

也許需要為這種情況做點調整?

Test Code

"Place module docstring here"
import os
from PTTLibrary import PTT

PTT_BOT = PTT.Library(
    # 目前支援繁體中文與英文
    # (預設值) Chinese
    # Language=PTT.Language.Chinese,
    # Language=PTT.Language.English,
    # 有三個等級可以選擇
    # (預設值) INFO
    # LogLevel=PTT.LogLevel.INFO,
    LogLevel=PTT.LogLevel.TRACE,
    # LogLevel=PTT.LogLevel.DEBUG,
)
try:
    PTT_BOT.login(
        os.getenv('PTT_USER_NAME', 'PTT_USER_NAME Not found'),
        os.getenv('PTT_USER_PASSWORD', 'PTT_USER_PASSWORD Not found'),
        KickOtherLogin=False
    )
except PTT.Exceptions.LoginError:
    PTT_BOT.log('登入失敗')
PTT_BOT.log('登入成功')

board = 'Steam'

Post = PTT_BOT.getPost(
    board,
    #PostIndex=PTT_BOT.getNewestIndex(PTT.IndexType.Board, Board=board)
    PostIndex=4444
)

print(Post.getTitle())


PTT_BOT.logout()

該篇文章截圖

image

文章代碼(AID): #17VB5YVd (Steam) [ptt.cc] [公告] C-Strike 板 開始賭博!
文章網址: https://www.ptt.cc/bbs/Steam/M.1199354210.A.7E7.html

Trace Information

PTT Library v 0.8.10
Developed by PTT CodingMan
[0826 03:37:53][資訊] 繁體中文語言模組 [初始化]
[0826 03:37:53][資訊] 連線核心 [初始化]
[0826 03:37:53][資訊] 批踢踢函式庫 v 0.8.10 [初始化]
[0826 03:37:53][資訊] 登入帳號 [et84121]
[0826 03:37:53][資訊] 連線核心 [啟動]
[0826 03:37:53][資訊] 連線批踢踢 [WebSocket]
[0826 03:37:53][除錯] 送出訊息 !!!you can't see me!!!
--------------------------------------------------
HTTP/1.1 200 OK

     ˙      PTT                   ◣          ˙      ◢██████◤
             140.112.172.11      ◢█◥█◤            ◢█████
  ┌─┐     批踢踢實業坊        ◢▃██◥█◤      ◢█████◤
  │–└┐   ptt.cc            ◢█████◥█◤    ◢█████
  │–  │                   ◢███◤███◥◤  ◢█████◤  ˙
─┘    │┌──┐         ◥◤      ████◣◢████
        └┤  –│                 ◢████◢███◤
                │┌───┐         █████▇▇▆▆▅▅▄▄▃▂▁
            ┌─┴┘––  └ ◢█████▇▇▆▆▅▅▄▄▃▃▂▂▁
            │––           ◥██
len:496
--------------------------------------------------
--------------------------------------------------















                                                        撐香港的自由


       歡迎來到 批踢踢實業坊 目前有【47893】位使用者


 ※本站目前暫停開放新帳號註冊。
=PTT=[21;1H
len:145
--------------------------------------------------
--------------------------------------------------















                                                        撐香港的自由


       歡迎來到 批踢踢實業坊 目前有【47893】位使用者


 ※本站目前暫停開放新帳號註冊。
=PTT=[21;1H

len:145
--------------------------------------------------
--------------------------------------------------






















 登入中,請稍候...
len:33
--------------------------------------------------
[0826 03:37:53][資訊] 批踢踢訊息 [登入中,請稍候]
[0826 03:37:53][除錯] 花費時間 [0.12]
[0826 03:37:53][除錯] 送出訊息 [b'\x0c']
--------------------------------------------------





















 注意: 您有其它連線已登入此帳號。
您想刪除其他重複登入的連線嗎?[Y/n]
len:64
--------------------------------------------------
[0826 03:37:53][資訊] 批踢踢訊息 [不剔除其他登入]
[0826 03:37:53][除錯] 花費時間 [0.3]
[0826 03:37:53][除錯] 送出訊息 [b'n\r\x0c']
--------------------------------------------------





















 注意: 您有其它連線已登入此帳號。
您想刪除其他重複登入的連線嗎?[Y/n]
len:64
--------------------------------------------------
[0826 03:37:53][資訊] 批踢踢訊息 [不剔除其他登入]
[0826 03:37:53][除錯] 花費時間 [0.02]
[0826 03:37:53][除錯] 送出訊息 [b'n\r\x0c']
--------------------------------------------------
                                              活動看板   PttFamous
   j  ㄨ  p         ▁▂▃▄    ▄▃▃▄▅g       獺獺獺獺◤▎
 ㄐ銵c─cμ     o ▂▄▆v▍  v▆g ▔ ̄       ▊▌        哄▏◢
 ◤c▃▄▃c◣ P   p df ▎ e▅  ▅e    ▉        ▊de
◤ ●﹒● ◣T =PTT=[0;36;4
len:244
--------------------------------------------------
--------------------------------------------------
                                              活動看板   PttFamous
   j  ㄨ  p         ▁▂▃▄    ▄▃▃▄▅g       獺獺獺獺◤▎
 ㄐ銵c─cμ     o ▂▄▆v▍  v▆g ▔ ̄       ▊▌        哄▏◢
 ◤c▃▄▃c◣ P   p df ▎ e▅  ▅e    ▉        ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍  〓                  j  〓n ▏   ▍ ◣      k okk
    ︶︶    T  pkdf k▏   d▃▃▄f▁   m ▎◣ ◣   deo▌oj
    " "'      oo   p◣j   ◤b ▂▃▃▄g  ▍   ◣ ◣ fg   ok j
   首獎300,000P      ▋▁▂芍f  =PTT=[0
len:429
--------------------------------------------------
--------------------------------------------------
                                              活動看板   PttFamous  
   j  ㄨ  p         ▁▂▃▄    ▄▃▃▄▅g       獺獺獺獺◤▎
 ㄐ銵c─cμ     o ▂▄▆v▍  v▆g ▔ ̄       ▊▌        哄▏◢
 ◤c▃▄▃c◣ P   p df ▎ e▅  ▅e    ▉        ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍  〓                  j  〓n ▏   ▍ ◣      k okk
    ︶︶    T  pkdf k▏   d▃▃▄f▁   m ▎◣ ◣   deo▌oj
    " "'      oo   p◣j   ◤b ▂▃▃▄g  ▍   ◣ ◣ fg   ok j
   首獎300,000P      ▋▁▂芍f   ▅▆▁◥   ◣      ◣                             v▍
                                                          ____
                         b                               活動看板  FamousWords
      ◣  ▁ ◢▁c  df▃▄▅     ▔       獺獺獺獺  ◣▍◤
      ◥▂ d▄f  ◤  ▅▆▔   ▂▃ 縑    c▁▎▂▄f   ◤  c一c_
  P   v ◤間◣    ◤縈d▄▅▆ e▄▅ ▄ ▅m   ▂c e▅v  f=PTT=[4
len:770
--------------------------------------------------
--------------------------------------------------
                                              活動看板   PttFamous
   j  ㄨ  p         ▁▂▃▄    ▄▃▃▄▅g       獺獺獺獺◤▎
 ㄐ銵c─cμ     o ▂▄▆v▍  v▆g ▔ ̄       ▊▌        哄▏◢
 ◤c▃▄▃c◣ P   p df ▎ e▅  ▅e    ▉        ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍  〓                  j  〓n ▏   ▍ ◣      k okk
    ︶︶    T  pkdf k▏   d▃▃▄f▁   m ▎◣ ◣   deo▌oj
    " "'      oo   p◣j   ◤b ▂▃▃▄g  ▍   ◣ ◣ fg   ok j
   首獎300,000P      ▋▁▂芍f   ▅▆▁◥   ◣      ◣                             v▍
                                                          ____
                         b                               活動看板  FamousWords
      ◣  ▁ ◢▁c  df▃▄▅     ▔       獺獺獺獺  ◣▍◤
      ◥▂ d▄f  ◤  ▅▆▔   ▂▃ 縑    c▁▎▂▄f   ◤  c一c_
  P   v ◤間◣    ◤縈d▄▅▆ e▄▅ ▄ ▅m   ▂c e▅v  fe▄▅▆
  T ◣▇ ▂e  ◤  ▄▅ ▍  e▄▅v▔    o ◣        ◢▂▂▃
  T   v j  ▍ 岷▍      m   c▃  f▄▅     ▍  ◣ ◣     m ▂▂▃ ▋
     ◤ okl▎   l▍   p m  oo   ▏  ▍   ◣ ◣    ▂▂▃ ▊
    ◤▊▌▏g ▎▍   ▊ ▌  g▉=PTT=[0;
len:953
--------------------------------------------------
--------------------------------------------------
                                              活動看板   PttFamous
   j  ㄨ  p         ▁▂▃▄    ▄▃▃▄▅g       獺獺獺獺◤▎
 ㄐ銵c─cμ     o ▂▄▆v▍  v▆g ▔ ̄       ▊▌        哄▏◢
 ◤c▃▄▃c◣ P   p df ▎ e▅  ▅e    ▉        ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍  〓                  j  〓n ▏   ▍ ◣      k okk
    ︶︶    T  pkdf k▏   d▃▃▄f▁   m ▎◣ ◣   deo▌oj
    " "'      oo   p◣j   ◤b ▂▃▃▄g  ▍   ◣ ◣ fg   ok j
   首獎300,000P      ▋▁▂芍f   ▅▆▁◥   ◣      ◣                             v▍
                                                          ____
                         b                               活動看板  FamousWords
      ◣  ▁ ◢▁c  df▃▄▅     ▔       獺獺獺獺  ◣▍◤
      ◥▂ d▄f  ◤  ▅▆▔   ▂▃ 縑    c▁▎▂▄f   ◤  c一c_
  P   v ◤間◣    ◤縈d▄▅▆ e▄▅ ▄ ▅m   ▂c e▅v  fe▄▅▆
  T ◣▇ ▂e  ◤  ▄▅ ▍  e▄▅v▔    o ◣        ◢▂▂▃
  T   v j  ▍ 岷▍      m   c▃  f▄▅     ▍  ◣ ◣     m ▂▂▃ ▋
     ◤ okl▎   l▍   p m  oo   ▏  ▍   ◣ ◣    ▂▂▃ ▊
    ◤▊▌▏g ▎▍   ▊ ▌  g▉g▇ ▎       ◣   縈▔◣



       歡迎您再度拜訪,上次您是從 1.170.141.195 連往本站。


 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 請按任意鍵繼續 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
len:1131
--------------------------------------------------
[0826 03:37:54][資訊] 批踢踢訊息 [請按任意鍵繼續]
[0826 03:37:54][除錯] 花費時間 [0.87]
[0826 03:37:54][除錯] 送出訊息 [b'q']
--------------------------------------------------
【主功能表】                     批踢踢實業坊
███████████████████████████████████████
▅▆▆◥███████████████████████████████████
     -─`      ̄ ̄ ̄       ̄ ̄ ̄     ̄ ̄                   ̄ ̄ ̄ ̄ ̄ ̄
            ▂▃     ︱       |        ﹨     |     \                   ∣
 \_   ∕ ◤▂ ▊。   /  ∕  ﹍ ﹨  L_         |        |  ⊥       |   .∠
   ╳    ▊˙▎◤▎`┐ │,   ︳▁   ╓-.︿   ∕  ` _︳ ∣ .  _x_    \   | ╲
 L  _▄▊\ ▆'     N \_7_︷-+┤ ↖╳   〉┬'┌‵√ 7╴.-!′   `┬+┼=.∕= ╴
┤ ▄ ▄, ╲,_  ◢│\_╱▏\_∕_﹀  _;}—L  ↘_〕-_╳  |   \__F ↙  ﹍] ▏_∕
 ╲=PTT=[32
len:543
--------------------------------------------------
--------------------------------------------------
【主功能表】                     批踢踢實業坊
███████████████████████████████████████
▅▆▆◥███████████████████████████████████
     -─`      ̄ ̄ ̄       ̄ ̄ ̄     ̄ ̄                   ̄ ̄ ̄ ̄ ̄ ̄
            ▂▃     ︱       |        ﹨     |     \                   ∣
 \_   ∕ ◤▂ ▊。   /  ∕  ﹍ ﹨  L_         |        |  ⊥       |   .∠
   ╳    ▊˙▎◤▎`┐ │,   ︳▁   ╓-.︿   ∕  ` _︳ ∣ .  _x_    \   | ╲
 L  _▄▊\ ▆'     N \_7_︷-+┤ ↖╳   〉┬'┌‵√ 7╴.-!′   `┬+┼=.∕= ╴
┤ ▄ ▄, ╲,_  ◢│\_╱▏\_∕_﹀  _;}—L  ↘_〕-_╳  |   \__F ↙  ﹍] ▏_∕
 ╲r▎◥〃└_▄〞↗╳ ▕_ ┘╳ ╲_↙▎↙↑_▕  ,┼▕  ﹨  ﹀`  ▎` ̄  ↖ ̄} ╲
 r┘ ▄ ◥▃▆┬╝└ ▎  ╲ ` ▏├   ̄\  ’︺▏可不可以偶爾下雨不必永遠晴天...

───────── 上方為使用者心情點播留言區,不代表本站立場 ────────
                       (A)nnounce     【 精華公佈欄 】
                       (F)avorite     【 我 的 最愛 】
                     > (C)lass        【 分組討論區 】
                       (M)ail         【 私人信件區 】
                       (T)alk         【 休閒聊天區 】
                       (U)ser         【 個人設定區 】
                       (X)yz          【 系統資訊區 】
                       (P)lay         【 娛樂與休閒 】
                       (N)amelist     【 編特別名單 】
                       (G)oodbye         離開,再見…
[8/26 星期一 3:37] [ 金牛時 ]    線上47893人, 我是et84121         [呼叫器]打開

len:1242
--------------------------------------------------
[0826 03:37:54][資訊] 批踢踢訊息 [登入成功]
[0826 03:37:54][除錯] 花費時間 [0.05]
[0826 03:37:54][資訊] 登入成功
[0826 03:37:54][除錯] 送出訊息 [b' \x1bOD\x1bOD\x1bOD\x1bOD\x1bODqsSteam\r\x03\x03 1\r$\x0c']
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
   編號    日 期 作  者       文  章  標  題                         人氣:218
   54326 +爆 8/25 Soaz          □ [閒聊] G胖在上海
   54327 + 2 8/25 yoseii       □ [心得] Life is strange 2 第四章 很多劇透
   54328 +24 8/25 cain1187     □ [CSGO] 實況主fl0m因轉播Berlin Major被Ban台
   54329 +19 8/25 power907     □ [問題] MHW的接待員貓咪造型可以關掉嗎
   54330 +85 8/25 yrs1224      □ [CSGO] S-L Berlin Major 2019 挑戰者組 Day 3
   54331 + 5 8/25 LisaGi       □ [心得] Wanna Survive 活屍戰棋
   54332     8/25 becausemusic R: [問題] 找兩款很久以前的遊戲
   54333     8/25 -            □ (本文已被刪除) [chi1206]
   54334   4 8/25 alanalg      □ [限免] Winexy (indiegala)
   543
len:712
--------------------------------------------------
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
   編號    日 期 作  者       文  章  標  題                         人氣:218
   54326 +爆 8/25 Soaz          □ [閒聊] G胖在上海
   54327 + 2 8/25 yoseii       □ [心得] Life is strange 2 第四章 很多劇透
   54328 +24 8/25 cain1187     □ [CSGO] 實況主fl0m因轉播Berlin Major被Ban台
   54329 +19 8/25 power907     □ [問題] MHW的接待員貓咪造型可以關掉嗎
   54330 +85 8/25 yrs1224      □ [CSGO] S-L Berlin Major 2019 挑戰者組 Day 3
   54331 + 5 8/25 LisaGi       □ [心得] Wanna Survive 活屍戰棋
   54332     8/25 becausemusic R: [問題] 找兩款很久以前的遊戲
   54333     8/25 -            □ (本文已被刪除) [chi1206]
   54334   4 8/25 alanalg      □ [限免] Winexy (indiegala)
   54335  15 8/25 jakert123    R: [情報] 《逆轉裁判123成步堂精選集》中文化確定
   54336  12 8/25 cain1187     □ [Dota] Ti9 OG完成二連霸
   54337 +18 8/25 Raidensnake  □ [問題] stardew valley星露谷老婆的選擇
   54338 +10 8/25 YOYOISGOOD   □ [問題] 關於雙手把 正廠和副廠可以共用嗎?
   54339     8/25 st12231      □ [實況] 空洞騎士 格林劇團開演【美哥】
   54340   2 8/25 aad784900    □ [問題] 請問有類似「電影夢工場」的遊戲嗎
   54341 +   8/26 aaronshell   □ [閒聊] Titanfall 2 戰役真的短到嚇到(但超好玩R
     ★   爆 5/30 flyingwhale  □ [公告] 板務宣導/置底聊天區
     ★  m 5 9/15 flyingwhale  □ [公告] Steam板板規/文章推薦區
     ★  !   6/01 hn9480412    □ [公告] 交易文章使用說明(發文/推文前請詳閱)
>   ★   40 8/01 hn9480412    □ [公告] 8月置底遊戲交換區
 文章選讀  (y)=PTT=[3
len:1328
--------------------------------------------------
[0826 03:37:54][除錯] 批踢踢訊息 [成功]
[0826 03:37:54][除錯] 花費時間 [0.05]
[0826 03:37:54][除錯] 找到最新編號 [54341]
[0826 03:37:54][除錯] 送出訊息 [b' \x1bOD\x1bOD\x1bOD\x1bOD\x1bODqsSteam\r\x03\x03 4444\rQ\x0c']
--------------------------------------------------
0m回應(X)推文(^X)轉錄 (=[]<>)相關主題(/?a)找標題/作者 (b)進板畫面






















len:71
--------------------------------------------------
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
   編號    日 期 作  者       文  章  標  題                         人氣:218
   4434 m   1/01 zop          R: 有玩TFC2的來自介一下吧
   4435 m   1/01 tn703678     R: 有玩TFC2的來自介一下吧
   4436  98 1/01 Siu          □ [建議] 來寫2008年ID對照表吧XD
   4437     1/01 onlyforu     □ [問題] kode5 demo
   4438 m 2 1/02 QuakeRz      □ [情報] ESA兩岸三地交流資格賽 首場台灣vs大陸
   4439 m 3 1/02 amgdaaaa     □ [XD] TF2無用小常識分享
   4440   6 1/02 cs80506      □ [買賣]Plantronics GAMECOM_PRO1 USB 專業耳麥
   4441   3 1/02 Star123      □ [閒聊] 怎麼都沒人......
   4442 m   1/02 sgouki       R: 有玩TFC2的來自介一下吧

>  4444   6 1/03
len:838
--------------------------------------------------
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
   編號    日 期 作  者       文  章  標  題                         人氣:218
   4434 m   1/01 zop          R: 有玩TFC2的來自介一下吧
   4435 m   1/01 tn703678     R: 有玩TFC2的來自介一下吧
   4436  98 1/01 Siu          □ [建議] 來寫2008年ID對照表吧XD
   4437     1/01 onlyforu     □ [問題] kode5 demo
   4438 m 2 1/02 QuakeRz      □ [情報] ESA兩岸三地交流資格賽 首場台灣vs大陸
   4439 m 3 1/02 amgdaaaa     □ [XD] TF2無用小常識分享
   4440   6 1/02 cs80506      □ [買賣]Plantronics GAMECOM_PRO1 USB 專業耳麥
   4441   3 1/02 Star123      □ [閒聊] 怎麼都沒人......
   4442 m   1/02 sgouki       R: 有玩TFC2的來自介一下吧

>  4444   6 1/03 Siu          □ [公告] C-Strike 板 開始賭博!
┌─────────────────────────────────────┐
│ 文章代碼(AID): #17VB5YVd (Steam) [ptt.cc] [公告] C-Strike 板 開始賭博!   │
│ 文章網址: https://www.ptt.cc/bbs/Steam/M.1199354210.A.7E7.html                 │
│ 這一篇文章值 0 Ptt幣                                                              │
└─────────────────────────────────────┘

   4451 m 1 1/04 How0428      R: 有玩TFC2的來自介一下吧
   4452   4 1/04 nrevols      □ [心得]被[BA]server ban了
   4453   2 1/04 Siu          □ [建議] 請按[V]投票
 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 請按任意鍵繼續 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
len:1458
--------------------------------------------------
[0826 03:37:54][除錯] 批踢踢訊息 [取得文章成功]
[0826 03:37:54][除錯] 花費時間 [0.04]
[0826 03:37:54][除錯] PostAID [17VB5YVd]
[0826 03:37:54][除錯] PostWeb [https://www.ptt.cc/bbs/Steam/M.1199354210.A.7E7.html]
[0826 03:37:54][除錯] PostMoney [0]
[0826 03:37:54][除錯] ListDate [1/03]
[0826 03:37:54][除錯] 送出訊息 [b'\r\r\x0c']
--------------------------------------------------
 作者  Siu                                                     看板  C-Strike
 標題  [公告] C-Strike 板 開始賭博!
 時間  Thu Jan  3 17:56:49 2008
───────────────────────────────────────

[測試]1月5日的比賽
請到 C-Strike 板 按'f'參與賭博!

一張 50 Ptt幣, 這是小賭式的賭博
賭盤結束時間: 01/05/2008 21:54:59 Sat
→ Siu:網址在4496篇                                                01/03 18:04
推 Star123:我每個都買一百張了XDDDDDDDDDD                           01/03 19:33
→ QuakeRz:xDDD 不能說我買誰不然違反中壢                           01/03 19:52
推 chatnoir:xDDD 不能說我買誰不然違反桃園                          01/03 20:00
推 cloud6329:xDDD 不能說我買誰不然違反楊梅                         01/
len:685
--------------------------------------------------
--------------------------------------------------
 作者  Siu                                                     看板  C-Strike
 標題  [公告] C-Strike 板 開始賭博!
 時間  Thu Jan  3 17:56:49 2008
───────────────────────────────────────

[測試]1月5日的比賽
請到 C-Strike 板 按'f'參與賭博!

一張 50 Ptt幣, 這是小賭式的賭博
賭盤結束時間: 01/05/2008 21:54:59 Sat
→ Siu:網址在4496篇                                                01/03 18:04
推 Star123:我每個都買一百張了XDDDDDDDDDD                           01/03 19:33
→ QuakeRz:xDDD 不能說我買誰不然違反中壢                           01/03 19:52
推 chatnoir:xDDD 不能說我買誰不然違反桃園                          01/03 20:00
推 cloud6329:xDDD 不能說我買誰不然違反楊梅                         01/03 23:06
推 ncr1126:xDDD 不能說我買誰不然違反新竹                           01/03 23:36
推 LieTo:  xDDD 不能說我買誰不然違反中和                           01/05 13:21
推 Star123:xDDD 不能說我買誰不然違反批踢                           01/05 14:13





  瀏覽 第 1/1 頁 (100%)  目前顯示: 第 01~17 行  (y)回應(X%)推文(h)說明(←)離開
len:957
--------------------------------------------------
[0826 03:37:54][除錯] 批踢踢訊息 [瀏覽文章完成]
[0826 03:37:54][除錯] 花費時間 [0.07]
[0826 03:37:54][除錯] 作者 [Siu              看板 C-Strike]
[0826 03:37:54][除錯] 標題 [[公告] C-Strike 板 開始賭博!]
[0826 03:37:54][除錯] 日期 [Thu Jan 3 17:56:49 2008]
Traceback (most recent call last):
  File "c:\Users\et841\.vscode\extensions\ms-python.python-2019.8.30787\pythonFiles\ptvsd_launcher.py", line 43, in <module>
    main(ptvsdArgs)
  File "c:\Users\et841\.vscode\extensions\ms-python.python-2019.8.30787\pythonFiles\lib\python\ptvsd\__main__.py", line 432, in main
    run()
  File "c:\Users\et841\.vscode\extensions\ms-python.python-2019.8.30787\pythonFiles\lib\python\ptvsd\__main__.py", line 316, in run_file
    runpy.run_path(target, run_name='__main__')
  File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "c:\workeara\game\PttSteamCrawler\PTTLibrary_test.py", line 31, in <module>
    PostIndex=4444
  File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\Synchronize.py", line 11, in inner_wrapper
    return f(*args, **kwargs)
  File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 491, in getPost
    SearchCondition
  File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 960, in _getPost
    IP=IP,
UnboundLocalError: local variable 'IP' referenced before assignment

當讀文章遇到 [ 文字不足 ] 等... 時直接崩潰

當我用
ErrCode, Post = PTTBot.getPost(Board=Board, PostIndex=index)時
如果那篇文章是文字不足、不符合XX版等...
程式會直接崩潰登出, 目前我實在找不到避免得方法
懇請作者指點 謝謝。

post與mail支援ANSI

能否在post 與mail的內容部分增加對上色字元的判定 並轉換成能正常上色的內容

server rejected WebSocket connection: HTTP 403

PTTLibrary ver: 0.8.25
Platform: Windows10

今天嘗試了很多次都是同個錯誤碼,請問要怎麼解決ptt擋了websocket連線的問題呢?

是這周才開始遇到這問題的,在別台電腦上測試也是一樣的error codes

也想問一下造成403的原因是什麼

謝謝

爬隱版文章

PTTLibrary 0.8.7版 會因為無法得到文章的連結會出現問題

UnknownError 漏掉 message

用發錢功能的時候撞到的

  File "ptt_money.py", line 62, in <module>
    ptt_bot.give_money(a, 49)
  File "/usr/local/miniconda3/lib/python3.8/site-packages/PyPtt/PTT.py", line 1265, in give_money
    return _api_give_money.give_money(self, ptt_id, money)
  File "/usr/local/miniconda3/lib/python3.8/site-packages/PyPtt/_api_give_money.py", line 44, in give_money
    exceptions_=exceptions.UnknownError()
TypeError: __init__() missing 1 required positional argument: 'message'

看了你的 module,UnknownError 在初始化的時候的需要一個參數 message,但是在 _api_give_money.py 裡面沒有給這個參數
導致只要跑這段 code 就一定會炸掉

推文內容若開頭跟結尾相同會有非預期的斷行

Issue description

推文內容若開頭跟結尾相同會有非預期的斷行

Steps to reproduce the issue

推文內容為123123123

PTTBot.push('test', PushType.Arrow, '123123123', 100)

What's the expected result?

應該產生一行推文且內容為 123123123

What's the actual result?

產生三行推文,內容分別為 123

Additional details / screenshot

問題發生於 Library.push

        while TempEndIndex <= len(PushContent):

            Temp = ''
            while len(Temp.encode('big5')) < MaxPushLength:
                Temp = PushContent[TempStartIndex:TempEndIndex]
                
                if not len(Temp.encode('big5')) < MaxPushLength:
                    break
               elif PushContent.endswith(Temp):     #  <=====  問題點
                    break
                    
                TempEndIndex += 1
            
            PushList.append(Temp)
            
            TempStartIndex = TempEndIndex
            TempEndIndex = TempStartIndex + 1

中的

elif PushContent.endswith(Temp):  

所以如果產生的Temp跟整個推文內容的結尾相同,就會產生非預期的斷行。

以下是我個人暫時的解法,還沒有仔細測試過各種狀況,給您參考一下

elif PushContent == Temp: 
    break
elif TempEndIndex > len(PushContent):  
    break

登入會卡住

出現此畫面的話,程式會卡住,不會跑下一步,然後就登出登入無限loop。

文字

正在更新與同步線上使用者及好友名單,系統負荷量大時會需時較久...
 ◆ 請勿頻繁登入以免造成系統過度負荷                            [按任意鍵繼續]  

image

log

[01-17 01:22:43][資訊] 連線頻道 0 重啟
[01-17 01:22:43][資訊] 頻道 0 建立互動通道成功
[01-17 01:22:43][資訊] 頻道 0 輸入帳號
[01-17 01:22:43][資訊] 頻道 0 輸入密碼
[01-17 01:22:43][資訊] 頻道 0 讀取 PTT 畫面..
[01-17 01:22:44][資訊] 頻道 0 刪除重複登入的連線
[01-17 01:22:50][資訊] 任意鍵繼續
[01-17 01:22:50][資訊] 頻道 0 登入成功
[01-17 01:22:50][資訊] 斷線,重新連線
[01-17 01:22:50][資訊] 連線頻道 0 重啟
[01-17 01:22:50][資訊] 頻道 0 建立互動通道成功
[01-17 01:22:50][資訊] 頻道 0 輸入帳號
[01-17 01:22:50][資訊] 頻道 0 輸入密碼
[01-17 01:22:50][資訊] 頻道 0 讀取 PTT 畫面..
[01-17 01:22:51][資訊] 頻道 0 刪除重複登入的連線

開放等待時間為可自行設定

我從國外使用ptt,連線的時間會比在台灣長很多,
使用預設的等待時間會不斷的出現timeout而無法使用,
我更改以下幾個數值後即可正常使用,請問是否能開放以下幾個參數為可設定呢?

(PTT.py line: 253 - 256)

PreWait = 0.01
EveryWait = 0.05
MaxEveryWait = 0.1 

若作者大大允許,我可以發PR

發錢沒有針對「確定進行交易嗎? (y/N):」回應

如題,如果一次進行多次發錢,有機會出現 確定進行交易嗎? (y/N): 問題,因為沒有處理,所以會丟出 UnknownError

我認為在 _api_give_money.pytarget_list 加這段,應該可以修好

connect_core.TargetUnit(
    i18n.Transaction,
    '確定進行交易嗎?',
    response='y' + command.Enter
),

Warning when pip install PyPtt

pip install PyPtt --upgrade

Collecting PyPtt
Using cached PyPtt-0.9.1.tar.gz (50 kB)
WARNING: Generating metadata for package PyPtt produced metadata for project name unknown. Fix your #egg=PyPtt fragments.
...
Installing collected packages: unknown
Attempting uninstall: unknown
Found existing installation: UNKNOWN 0.9.1
Uninstalling UNKNOWN-0.9.1:
Successfully uninstalled UNKNOWN-0.9.1
Running setup.py install for unknown ... done
Successfully installed unknown-0.9.1

支援 ptt2.cc

又來許願了。希望可以支援操作 ptt2.cc。

登入時一直發生超時斷線

程式碼

from PTTLibrary import PTT
ID = '****'
Password = '****'
PTTBot = PTT.Library()
ErrCode = PTTBot.login(ID, Password)

output:

[05-30 12:09:57][資訊] 偵測到前景執行使用編碼: cp950
[05-30 12:09:57][資訊] 產生 SSH 金鑰完成
[05-30 12:09:57][資訊] 使用者帳號: ****
[05-30 12:09:57][資訊] 密碼: *******
[05-30 12:09:57][資訊] 連線頻道 0 啟動
[05-30 12:10:08][資訊] 頻道 0 建立互動通道成功
[05-30 12:10:15][資訊] 頻道 0 輸入帳號
[05-30 12:10:15][資訊] 頻道 0 輸入密碼
[05-30 12:10:15][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:10:15][資訊] 頻道 0 刪除重複登入的連線
[05-30 12:10:20][資訊] 任意鍵繼續
[05-30 12:10:20][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:10:31][資訊] 超時斷線,重新連線
[05-30 12:10:31][資訊] 連線頻道 0 重啟
[05-30 12:10:38][資訊] 頻道 0 建立互動通道成功
[05-30 12:10:45][資訊] 頻道 0 輸入帳號
[05-30 12:10:45][資訊] 頻道 0 輸入密碼
[05-30 12:10:45][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:10:46][資訊] 頻道 0 刪除重複登入的連線
[05-30 12:10:50][資訊] 任意鍵繼續
[05-30 12:10:50][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:11:01][資訊] 超時斷線,重新連線
[05-30 12:11:01][資訊] 連線頻道 0 重啟

原本爬蟲爬到一半斷線,
後來連登入都不行
透過VPN重新執行後可以正常使用(疑似是因為IP 被ban?)
但在不使用VPN的情形下使用PCMan可以正常登入跟操作

遇到寬度 > 80 的文章不要自動換行

範例︰
文章代碼(AID): #1QxJjbqT (asciiart) [ptt.cc] [ANSI] 龍貓
文章網址: https://www.ptt.cc/bbs/asciiart/M.1525496677.A.D1D.html

這是用 PTTLibrary 抓下來的︰
66. [asciiart] [ANSI] 龍貓 [CAMIYA (CAMIYA)] (20180505130434).zip

我希望能有一個選項可以選擇不要自動換行,保持每行完整。

P.S. 若想在網頁版看大圖,可以加以下的 CSS 讓內容不要自動換行︰

#main-content {
  white-space: pre;
}

某些文章無法抓到推文

原本以為是經過編輯的會抓不到,
但經過我用以下程式碼測試:

from PTTLibrary import PTT
bot = PTT.Library(kickOtherLogin=False)
bot.login(ID, PW)
err, NewestIndex = bot.getNewestIndex(Board='Gossiping')
for i in range(100): # 可改更大
    err, post = bot.getPost(Board="Gossiping", PostIndex=NewestIndex - i)
    if err == PTT.ErrorCode.PostDeleted:
        bot.Log('文章已經被刪除')
        continue
    elif err != PTT.ErrorCode.Success:
        bot.Log('使用文章編號取得文章詳細資訊失敗 錯誤碼: ' + str(err))
        continue
    if post.getPushList() == []:
        bot.Log(post.getWebUrl())
bot.logout()

經我手動查閱有以下幾篇有推文卻未抓出:
未編輯:
https://www.ptt.cc/bbs/Gossiping/M.1538366318.A.C0C.html
https://www.ptt.cc/bbs/Gossiping/M.1538367360.A.D2B.html
https://www.ptt.cc/bbs/Gossiping/M.1538368209.A.7FE.html
有編輯:
https://www.ptt.cc/bbs/Gossiping/M.1538368902.A.15F.html

使用pythonw.exe無法跑

開發時用pythone.exe正常的在跑,但是想要用在背景執行的pythonw.exe跑的時候就沒有反應了。

python版本 3.6.2
os: windows 10
使用功能流程: 登入(不覆蓋重複登入)->到test板po文就結束了

Log 記錄

Feature hope

  • 隱藏敏感資訊,讓 Log 裡不要出現密碼這種資訊 😂🤣,username也可以考慮拿掉
  • 讓 Log 不只是輸出到 console 上,也可以寫入到檔案裡。

最近發文遇到的問題

最近發文,系統不再是說發文成功,而是顯示以下字串
順利貼出佈告,本篇文章不列入記錄,敬請包涵
但是程式沒判斷到這段,導致顯示失敗。

支援PEP8

是否有考慮向PEP8規範靠攏?
使用此library的時候一直有PEP8 violation warning
程式碼風格也不pythonic

版本 0.7.24 文章抓不到IP

例如 Gossiping 796897 應該要抓到 180.217.210.109

from PTTLibrary import PTT

ptt = PTT.Library(kickOtherLogin=False)
err_code = ptt.login(u, p)

if err_code != PTT.ErrorCode.Success:
    print('failed to login')
    exit(1)

err_code, post = ptt.getPost('Gossiping', PostIndex=796897)
if err_code == PTT.ErrorCode.Success:
    print(post.getTitle())
    print(post.getIP())
    print(type(post.getIP()))

output:

[新聞] G20峰會川普發聲:**害了我們25年了!
[]
<class 'str'>

找不到特定看版 'Steam'版

餓死抬頭
我試過好多冷門版都一樣找得到R

如果是我的問題的話先說聲抱歉了

Code

"Place module docstring here"
import os
from PTTLibrary import PTT

PTT_BOT = PTT.Library(
    # 目前支援繁體中文與英文
    # (預設值) Chinese
    # Language=PTT.Language.Chinese,
    # Language=PTT.Language.English,
    # 有三個等級可以選擇
    # (預設值) INFO
    # LogLevel=PTT.LogLevel.INFO,
    # LogLevel=PTT.LogLevel.TRACE,
    LogLevel=PTT.LogLevel.DEBUG,
)
try:
    PTT_BOT.login(
        os.getenv('PTT_USER_NAME', 'PTT_USER_NAME Not found'),
        os.getenv('PTT_USER_PASSWORD', 'PTT_USER_PASSWORD Not found'),
        KickOtherLogin=False
    )
except PTT.Exceptions.LoginError:
    PTT_BOT.log('登入失敗')
PTT_BOT.log('登入成功')

board = 'Steam'

Post = PTT_BOT.getPost(
    board,
    PostIndex=PTT_BOT.getNewestIndex(PTT.IndexType.Board, Board=board)-9
)

print(Post.getTitle())


PTT_BOT.logout()

LOG

PTT Library v 0.8.10
Developed by PTT CodingMan
[0825 22:44:24][資訊] 繁體中文語言模組 [初始化]
[0825 22:44:24][資訊] 連線核心 [初始化]
[0825 22:44:24][資訊] 批踢踢函式庫 v 0.8.10 [初始化]
[0825 22:44:24][資訊] 登入帳號 [et84121]
[0825 22:44:24][資訊] 連線核心 [啟動]
[0825 22:44:24][資訊] 連線批踢踢 [WebSocket]
[0825 22:44:24][除錯] 送出訊息 
[0825 22:44:24][資訊] 批踢踢訊息 [登入中,請稍候]
[0825 22:44:24][除錯] 花費時間 [0.11]
[0825 22:44:24][除錯] 送出訊息 [b'\x0c']
[0825 22:44:25][資訊] 批踢踢訊息 [不剔除其他登入]
[0825 22:44:25][除錯] 花費時間 [0.43]
[0825 22:44:25][除錯] 送出訊息 [b'n\r\x0c']
[0825 22:44:25][資訊] 批踢踢訊息 [不剔除其他登入]
[0825 22:44:25][除錯] 花費時間 [0.0]
[0825 22:44:25][除錯] 送出訊息 [b'n\r\x0c']
[0825 22:44:26][資訊] 批踢踢訊息 [請按任意鍵繼續]
[0825 22:44:26][除錯] 花費時間 [1.49]
    runpy.run_path(target, run_name='__main__')
  File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "c:\workeara\game\PttSteamCrawler\test.py", line 31, in <module>
    PostIndex=PTT_BOT.getNewestIndex(PTT.IndexType.Board, Board=board)-9
  File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\Synchronize.py", line 11, in inner_wrapper
    return f(*args, **kwargs)
  File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 491, in getPost
    SearchCondition
  File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 606, in _getPost
    raise Exceptions.NoSuchBoard(Board)
PTTLibrary.Exceptions.NoSuchBoard: 無該版面: Steam

更可靠的「取得文章標題」方法

目前的文章標題是由文章前幾行提出,但事實上 PTT 的文章標題是可以被移動,甚至刪除的。例︰
https://www.ptt.cc/bbs/asciiart/M.1529136658.A.F58.html

一個比較可靠的方法是在文章列表按大 T,就可以看到完整的文章標題︰
image
但這只對自己發的文有用。

另一個方法是按 ^x 轉錄、或按 y 回覆該文章︰
image
image
但是標題會因為前面增加了 Re: Fw: 而少了 4 個字元。

還有一個方法︰1) 先以大 F 把文章轉到信箱,並進入信箱(若要擷取的文章本來就在信箱裡,可省略這步驟)。2) 在文章前按小 x,把信轉給自己。此時就會顯示完整標題︰
image

取得 big5-uao 編碼的文章/信件內容

在 utf-8 模式下,雙色字無法被正確上色。希望能新增一個選項,用來取得 big5 編碼下的原始資料。類似︰

bot = PTT.Library(user, password, raw=True)
content = bot.getMail(index).content
assert isinstance(content, bytes) # content 是 bytes
cleaned_content = clean_screen(content) # 移除 esc code
text = cleaned_content.decode("big5-uao") # 純文字

換行字元不一致

PTT.Library.getMail 取得信件,並以 MailInformation.getRawData 取得原始資料。
image
可以看到大部份行都是以 CRLF 做結尾;而部份空行使用單一 LF,缺少了 CR 字元。

這導致 PHJCI 上色失敗︰
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.