Ptt-backend icon indicating copy to clipboard operation
Ptt-backend copied to clipboard

[主線] [PTT] 實作上下箭頭推文

Open titaneric opened this issue 3 years ago • 8 comments

實作細節 / Details of Implement

Quote from Pichu:

在放入 user01 Access Token 的情況下,發出一篇文章,user02 可以用 「↑」進行推文,評價數要加一,user02第二次用 ↑ 推文時評價數不變 接著user02 用 「↓」推文時原先的上箭頭推文被刪去,評價數減一(收回),第二次用 ↓ 推文時評價數減一,第三次用↓推文時評價數不變 在放入 user01 Access Token 的情況下,發出一篇文章,user01 用 「↑」進行推文,評價數不變 (自己不能推自己)

  • 修改usecase /article.go
    • 增加類似UpdateUsefulness function,以模仿stackoverflow或reddit
  • repository/article.go中新增Usefulness struct,與後端gobbs對接
  • delivery/http新增route_update_usefulness.go處理http routing
  • 可能會有權限問題需要處理
  • 對應測試需要撰寫

期程 / Schedule

  • 討論時間: 兩周
  • 實作時間: 兩周
  • 確認時間: 兩周

備註

  • 目前Google doc那裏還沒更新
  • 子issue需要協助開立

titaneric avatar May 30 '21 04:05 titaneric

嗨,想幫忙這個 issue,但想確定一下結節…

  1. 這個+1-1的計算看起來應該是在 ptt-backend 這邊計算,然後判斷執行+1/-1的 user 跟文章作者是否是同一人,再決定+1/-1的行為 2.透過 gobbs 提供的 public interface 取得目前的推文總數,計算完後再透過另一個 gobbs 的 public interface 更新

然後現況是目前 gobbs 還沒有相關的實作,並且 Google DOC 也還沒有這個 endpoint 對嗎?

wagaru avatar Jun 16 '21 07:06 wagaru

@wagaru 目前是這樣沒錯唷,我剛把Google Doc那邊註記,如果有更新你可以依照spec實作

titaneric avatar Jun 16 '21 09:06 titaneric

嗨,想幫忙這個 issue,但想確定一下結節…

  1. 這個+1-1的計算看起來應該是在 ptt-backend 這邊計算,然後判斷執行+1/-1的 user 跟文章作者是否是同一人,再決定+1/-1的行為

差不多

2.透過 gobbs 提供的 public interface 取得目前的推文總數,計算完後再透過另一個 gobbs 的 public interface 更新

然後現況是目前 gobbs 還沒有相關的實作,並且 Google DOC 也還沒有這個 endpoint 對嗎? go-bbs 相關的實作要等 https://github.com/Ptt-official-app/go-bbs/issues/82 這個完成,知道目前推文數以及修改推文數的應該直接呼叫文章屬性相關的函式就行了? 目前 google doc 使用原有的推文,type 改成上下箭頭 ↑ ↓

PichuChen avatar Jun 16 '21 10:06 PichuChen

我想詢問一個實做細節,因為推文數的計算有一個規則是「使用者在文章的推數影響最大 +1 最小 -1」,所以實做時需要使用當前使用者在這篇文章的推噓數,那麼這個數字要從何計算?

  1. 解析文章的推文部份,解析出屬於當前使用者的推文來計算。這個作法的漏洞是文章作者可以編輯推文段落,使得最多 +1的規則無法落實。
  2. go-bbs 提供這篇文章所有推文列表結構,以此計算。問題:go-bbs會提供這個結構嗎?
  3. 其他方法?

golopot avatar Jun 28 '21 16:06 golopot

在.DIR檔案裡面有紀錄文章目前的推文數

PichuChen avatar Jun 29 '21 00:06 PichuChen

關於上下箭頭部分,我認為可以先求有再求好。

在原本 BBS 的設計中有 recommend 來表示推文數,然後這個推文數和上下箭頭的數字是分離的。

所以先求有再求好的狀況就是直接抓內文然後去統計上下箭頭的數量,暫時先不考慮做假的狀況。

也就是流程上就是 (在usecase)

  1. 抓內文
  2. 抓到\n↑ \n↓
  3. 抓出ID ,統計該ID的上下狀態
  4. 加總

這樣。

PichuChen avatar Jun 30 '21 01:06 PichuChen

也就是流程上就是 (在usecase)

  1. 抓內文
  2. 抓到\n↑ \n↓
  3. 抓出ID ,統計該ID的上下狀態
  4. 加總

這樣表示目前我們打算將使用者按上下箭頭的紀錄當成一般推文一樣直接寫進 filename 底下嗎?

nickyanggg avatar Jul 10 '21 13:07 nickyanggg

對,這樣可以比較簡單的做到向下支援

PichuChen avatar Jul 10 '21 13:07 PichuChen