cofacts

Month: 2018-02

2018-02-02

mrorz 00:41:14
@ggm https://github.com/cofacts/rumors-line-bot/issues/40 這個好像沒修好耶
現在 production 的 LINE bot 確實會擋過短字串,但只輸入網址的話是不會擋的囧

GitHub

Query string only contains a single url · Issue #40 · cofacts/rumors-line-bot

擋掉然後回應:「這是單純的網址,不是轉傳訊息,請從網址擷取出相關的文字資訊。」

ggm 01:09:21
這麼神秘 我試試看
ggm 01:13:30
你打什麼網址呀?我試都可以捏
ggm 01:14:32
你會不會打的網址是原本就搜的到內容的?
mrorz 01:31:47
啊可能是耶
mrorz 01:32:16
然後我按「這裡沒有一篇是我傳的訊息」
然後就可以送出資料庫了
mrorz 01:32:37
如果太短的話不應該要有「這裡沒有一篇是我傳的訊息」
或者是按了之後跟他說太短
mrorz 01:33:14
這裡有一個使用者案例:
https://cofacts.g0v.tw/article/AWFR5jVChutQxxU6tq00
bil 12:15:20
那如果不讓他搜內容呢?@@
mrorz 12:20:44
那之前針對該連結寫的回應就白費了呢
既然要修這個 bug 就正面修好它,在按下「這裡沒有一篇是我傳的訊息」按鈕時檢查長度。
bil 12:31:57
那可以在修好這個bug之前不讓他搜嗎?
ggm 18:18:54
噢這是之前討論到的,最早的時候是擋在搜尋前面,後來討論說要擋在搜尋後面。

但是漏掉了,他可以透過「這裡沒有一篇是我傳的訊息」來新增文章
ggm 18:20:49
我覺得不是按下的時候擋下他,而是把那張卡片顯示成。「你輸入的OOOO太短,所以 XXOXOX 不能新增噢」之類的文字。
mrorz 18:23:08
好唷就照著 ggm 說的這麼做吧
ggm 18:23:39
ok go
mrorz 00:56:26
是說 DB schema 有個 change 希望 @ggm @darkbtf review 一下唷
https://github.com/cofacts/rumors-db/pull/12

GitHub

Add omitted fields by MrOrz · Pull Request #12 · cofacts/rumors-db

Add normalArticleReplyCount so that we can list articles by number of replies. I failed to find a way to filter by nested object count, and there are others suggesting adding such field for efficie...

ggm 18:23:53
ok 我今天晚點看

2018-02-03

mrorz 18:14:00
剛好有個空就順手擋掉了 URL 的 issue,目前放到 staging 上了,大家可以測測~

staging LINE bot QR code: https://line.me/R/ti/p/%40nkq3195z
(ID: @nkq3195z )

@ggm Review 唷
https://github.com/cofacts/rumors-line-bot/pull/52

GitHub

Block nonsense text from submitting through search results by MrOrz · Pull Request #52 · cofacts/rumors-line-bot

rumors-line-bot - Line bot that checks if a message contains internet rumor.

ggm 18:29:03
ok

2018-02-04

@null 14:23:08

Log event

2018-02-04 06:20:37.536 94 <190>1 2018-02-04T06:20:37.079467+00:00 app web.1 - - 2018-02-04 06:20:37.536 116 <190>1 2018-02-04T06:20:37.079562+00:00 app web.1 - - [App:heroku-line-bot] 2018-02-04 06:20:37.536 165 <190>1 2018-02-04T06:20:37.079563+00:00 app web.1 - - ||LOG||"actions":[{"type":"postback","label":"選擇","data":"{\"input\ 2018-02-04 06:20:37.536 94 <190>1 2018-02-04T06:20:37.079565+00:00 app web.1 - - 2018-02-04 06:20:37.536 116 <190>1 2018-02-04T06:20:37.079650+00:00 app web.1 - - [App:heroku-line-bot] 2018-02-04 06:20:37.536 142 <190>1 2018-02-04T06:20:37.079652+00:00 app web.1 - - ||LOG||":0,\"issuedAt\":1517725236073}"}]}]}}]}} 2018-02-04 06:20:37.536 94 <190>1 2018-02-04T06:20:37.079654+00:00 app web.1 - - 2018-02-04 06:20:37.536 116 <190>1 2018-02-04T06:20:37.079741+00:00 app web.1 - - [App:heroku-line-bot] 2018-02-04 06:20:37.536 112 <190>1 2018-02-04T06:20:37.079743+00:00 app web.1 - - ||LOG||----------> 2018-02-04 06:20:37.536 94 <190>1 2018-02-04T06:20:37.079744+00:00 app web.1 - -

ggm 23:29:09
窩操
ggm 19:49:45
THE typo sticker
https://line.me/S/sticker/1930824

LINE STORE

THE typo sticker – LINE stickers | LINE STORE

THE typo sticker

mrorz 11:59:21
這也能出
mrorz 12:01:16
嘲諷度爆表 w
ggm 23:29:09
窩操

2018-02-05

mrorz 12:12:22
@ggm
https://github.com/cofacts/rumors-line-bot/issues/35 這個失敗了,signature mismatch 依然在發生 Orz

GitHub

checkSignature() causing incoming requests gets 401 · Issue #35 · cofacts/rumors-line-bot

mrorz 00:25:11
我覺得應該是我 captureRawBody 硬塞進utf8字串導致錯誤
尤其好發於超長訊息
由於訊息字串常常會被 encode 成 `\uXXXX`
而我原本的塞法,可能會導致 `\uXXXX` 被分兩次塞進 utf8 陣列,造成解譯錯誤,這樣一來算出來的 signature 就會跟傳進來的不同。

我發了一個 https://github.com/cofacts/rumors-line-bot/pull/54 , deploy 到 staging
也附上了常常會觸發 production 上的 signature mismatch 的 sample。

目前試了幾個字串,同時轉傳給 production 與 staging line bot,前者不回話,而後者會回,看起來似乎會 work。

再麻煩 @ggm review 了!
ggm 13:45:22
噢噢我好奇,所以 `raw-body` 是多做什麼事情呀?先確認 `ctx.request.charset` 之類的嗎
mrorz 13:49:16
`ctx.req` 是 node http `Stream` 但 `checkSignature` 吃 node `Buffer` 或 string
`raw-body` 可以 http stream 轉 buffer
mrorz 13:53:46
ctx.req 是這個 https://nodejs.org/api/http.html#http_class_http_incomingmessage (implements Readable Stream interface)
mrorz 13:55:15
buffer 是監聽 stream 的 events 然後一個一個 chunk 吃進來擺進陣列的那個陣列
mrorz 13:56:45
所以你也是可以說我不要 raw-body
原本的 `captureRawBody` 的 string 改 buffer 啦
但同一份 stream 被 `captureRawBody` 弄一次,然後被 `body-parser` 也弄一次,實在滿蠢的
所以就一起拔掉了
mrorz 13:58:22
其實精確來說 body-parser 內部也是用 raw-body
我們的 use case 裡面,只需要 stream 轉 raw buffer 就好,不需要 body-parser 其他那些 content-type detection、轉 html 轉 json 轉 text 那些碗糕
所以就去掉 body-parser 只取 raw-body 囉
mrorz 14:12:09
Deployed to production on 2pm
let's see if there is any such exceptions...
ggm 14:24:20
對啊接 buffer 好像是比較萬無一失,哈哈
ggm 15:27:20
慘 .. qq
mrorz 16:03:44
今天收到一個老謠言
發現他的解答被刪掉了 QQ

55 人回報呢

https://cofacts.g0v.tw/article/5361365130068-rumor
mrorz 16:08:08
我看原本的回應挺好的,就補回去囉

2018-02-06

henry30270 15:47:34
@henry30270 has joined the channel

2018-02-07

mrorz 00:25:11
我覺得應該是我 captureRawBody 硬塞進utf8字串導致錯誤
尤其好發於超長訊息
由於訊息字串常常會被 encode 成 `\uXXXX`
而我原本的塞法,可能會導致 `\uXXXX` 被分兩次塞進 utf8 陣列,造成解譯錯誤,這樣一來算出來的 signature 就會跟傳進來的不同。

我發了一個 https://github.com/cofacts/rumors-line-bot/pull/54 , deploy 到 staging
也附上了常常會觸發 production 上的 signature mismatch 的 sample。

目前試了幾個字串,同時轉傳給 production 與 staging line bot,前者不回話,而後者會回,看起來似乎會 work。

再麻煩 @ggm review 了!

GitHub

Implements signature middleware by MrOrz · Pull Request #54 · cofacts/rumors-line-bot

This is another attempt to fix #35 . We suspect that the implementation of captureRawBody, which records request stream into a string, is the source of signature mismatch. This PR completely gets r...

ttcat (not_staff) 17:03:53
哈囉你們今天開完會了?
mrorz 19:02:08
還沒呀上面是今晚預計要討論的呢
ttcat (not_staff) 17:04:22
想跟大家討論幾件事,另外 LINE 官方帳號那邊解決了嗎
mrorz 19:02:16
沒 orz
bil 19:03:13
歡迎阿端來喔,line官方帳號那裡還沒有解決
ggm 21:25:17
還沒我剛寄信催了一波!
ttcat (not_staff) 15:27:46
QQ 結果 slack 沒跳出來所以我錯過了
ttcat (not_staff) 15:27:54
你們還有什麼時候會在啊?
delightfullychaotic 17:07:57
2/10 小聚
ttcat (not_staff) 17:26:54
orz 那天要帶外國人出遊
ggm 15:39:42
那就要等到過年後囉!

2018-02-08

zoe770 07:25:40
@zoe770 has joined the channel
bess 18:13:51
嗨,想問,你們週六小聚會有人拍照記錄活動嗎?
delightfullychaotic 18:22:03
自己會記錄~有幫手嗎www
bess 18:22:47
那個……不然我也可以帶相機去,手冊要加你們的部分 2 頁,很 需 要 照 片
bess 18:23:18
多 多 益 善
mrorz 18:23:51
好唷請帶請帶
mrorz 18:24:03
我們 Facebook 有之前的活動紀錄說
bess 18:24:34
那好像不用帶了(咦)
有原檔連結嗎?手冊要印刷用的檔案
mrorz 18:24:46
等等,好像沒放相簿 QAQ
mrorz 18:25:03
我回去傳 google photos 連結給你~
bess 18:25:10
好喔感恩

2018-02-09

2018-02-10

mrorz 11:48:54
現在撰寫回應,有新的功能囉!

如果「現有回應」頁籤沒有找到你要的回應,但你記得之前 Cofacts 有回應可以拿來用的話,現在可以切到「搜尋」頁籤輸入關鍵字,搜尋過去的回應並且直接加到文章囉!
新功能:搜尋現有回應
mrorz 12:28:16
因為今天就是小聚了,所以我把 bot 下面的 menu 更新囉
也改成不會預設打開了

2018-02-12

johan 18:18:15
@johan has joined the channel

2018-02-13

delightfullychaotic 09:02:19
看到這個很無奈==
hazelwei 10:02:04
Hackfolder是不是壞掉了?
mrorz 11:47:09
Yes, 後來 #general 有人回報囉
au 在修~
ronnywang 14:51:39
回來了
bil 11:36:18
Line帳號跟貼圖那裡要想別的辦法囉,大家有什麼建議嗎
mrorz 12:10:29
原案好像是上架賣
只是就要改合約
然後重新談拆帳怎麼做這件事情
bil 13:59:23
意思是acho跟設計師那裡要道歉跟重新寫合約對嗎?
mrorz 14:53:18
如果採原案的話是這樣的沒錯 QQ
bil 15:27:48
能先試著寄信給adam或monica他們試試嗎?
ggm 15:55:49
就道歉然後重擬合約吧?
ggm 15:57:25
接著其實還有也很麻煩的事情,就是 LINE@ 的申請開公司弄嗎?還是要掛在 ocf,這樣就要他們幫我們申請商標,然後再註冊。還有之後我們上架貼圖,金流也會進 ocf 這樣會拆帳拆帳再拆帳也會有點麻煩,所以需要討論一下怎做比較好
mrorz 16:18:58
尋求另一個部門的協助也不失為一個辦法沒錯
ggm 18:55:26
噢噢對也是,那就要繼續等待回應
ttcat (not_staff) 23:41:51
如果有這種已經被拆帳過又不需要 ocf 再開發票收據的 case,可專案來談折扣
ttcat (not_staff) 23:40:34
明晚還會開會嗎?
bil 23:47:41
明晚小年夜沒有開會唷
ttcat (not_staff) 23:46:58
或是能否跟大家約線上呢

2018-02-14

mrorz 01:29:51
但我已經約了牙醫 QQ

2018-02-15

mrorz 00:34:04
RightsCon 投稿上了呢
ttcat (not_staff) 12:29:41
@mrorz 要跟我們去了嗎?ya~
ttcat (not_staff) 12:30:40
我其中一個跟 cofact 有關的也上了,就再 merge 吧
mrorz 12:49:37
go
mrorz 15:12:23
一起住大學宿舍呀 XD
ttcat (not_staff) 21:23:10
你有申請到機票補助嗎?我們可能有經費,但四月才知道
mrorz 02:22:09
沒有呢
我的visa金融卡準備好了 (?)
mrorz 15:12:31
不知道有沒有 airbnb
mrorz 19:01:51
我們目前在搜尋引擎不會是前幾名
好像是 https://github.com/cofacts/rumors-site/issues/67 的影響

由於我們全站的 structured data 除了 website 之外就剩下 claimreview
所以先試著拿掉 claimreview 看看是否可以改善
麻煩 @lucien @sunrise91.t3 review 一下 https://github.com/cofacts/rumors-site/pull/81

GitHub

Removing ClaimReview tags for now by MrOrz · Pull Request #81 · cofacts/rumors-site

Because they might be the cause of "spammy markup" Fixes #67

ttcat (not_staff) 21:07:18
因為一直沒時間跟大家約,我直接先把想跟大家討論的事列這邊:
mrorz 02:15:57
要注意的是 slackarchive 掛掉很久了,所以一週內這些訊息很可能會消失唷 QAQ
ttcat (not_staff) 21:09:36
1. 上次談到把 cofacts 包裝一下讓其它東南亞有在用 LINE 的像泰國、印尼當地關注 fake news 的公民倡議團體可以用,這部分可能有經費支持
ttcat (not_staff) 21:12:17
2. 6/26-27 OCF 這邊會辦一個針對 combating disinformation 給台灣與東亞公民社會的 workshop,想邀 cofacts 來合辦,例如協助規劃議程、host 部分 sessions 或有沒有其它你們覺得可以邀的單位?
mrorz 02:11:20
1. 媒體觀察教育基金會
2. MyGoPen
3. 蘭姆酒吐司
mrorz 02:12:31
然後有辦法邀到 Google News Lab APAC 嗎
ttcat (not_staff) 16:16:30
I can try!
ttcat (not_staff) 21:15:43
3. 今年 4 月中,TICTeC 在葡萄亞里斯本,我們會去參加,對方邀請我們分享 cofacts 20 分鐘,但目前還沒有找到直接經費贊助,想問是否有人能自費隨團?若不能,是否能跟大家約個時間討論可以分享那些內容?從目前的回報資料庫是否有一些新的 Insight?
mrorz 02:15:18
我的部分
5 月中要去 RightsCon
6 月下旬希望可以去 Global Fact V (Poynter 辦的,主題 100% 吻合)
4 月中還去的話覺得有點太頻繁了 QAQ

不知道有沒有其他成員有興趣呢?
ttcat (not_staff) 21:17:59
4. 之前大松 mrorz 好像提到,今年要再推一次比較大的宣傳,但缺設計師 or UI?(我印象有點模糊)看是不是請揪松也幫忙找人推坑,或能不能用 1) 的經費來協助
mrorz 02:16:56
@lucien 說年節會出 UI design 唷~
ttcat (not_staff) 21:18:46
5. 更新 LINE 官方帳號的進度以及討論我們可能的協助
ttcat (not_staff) 21:19:00
以上,大家新年快樂:tada:
ttcat (not_staff) 21:19:34
看是不是有 email 群組來 follow 這些討論,或年後我再去你們的會議

2018-02-16

mrorz 02:20:24
年後應該是 2/21 開會唷
mrorz 02:21:14
是說我終於把 API refactor 完了
最後一個 bug 卡了我 7 天囧

但改了 87 個檔案,這個 PR 我在想要不要直接上惹⋯⋯
https://github.com/cofacts/rumors-api/pull/62

GitHub

[WIP] 201712 mappings refactor by MrOrz · Pull Request #62 · cofacts/rumors-api

rumors-api - GraphQL API server for clients like rumors-site and rumors-line-bot

mrorz 15:24:25
現在要來針對 staging site 做 DB migration process
( https://github.com/cofacts/rumors-db/issues/7#issuecomment-352262625 )
mrorz 20:20:32
Staging DB & API with new schema 上線囉

http://bit.ly/2GiMGjK

之後就可以支援先照 article reply count 排、再照 last requested at 的時間排了
mrorz 22:19:14
先照 article reply count 排、再照 last requested at 的時間排:
http://bit.ly/2GiIoZX

2018-02-17

mrorz 22:58:40
@lucien @sunrise91.t3
我這裡先送了一包小的 PR,改環境變數讓 rumors-site 可以支援 staging 環境。
https://github.com/cofacts/rumors-site/pull/82

GitHub

Add support for staging env by MrOrz · Pull Request #82 · cofacts/rumors-site

Now the staging site available at <https://cofacts.hacktabl.org> with API connecting to <https://cofacts-api.hacktabl.org>

mrorz 23:03:37
現在點進去應該會遇到一些 GraphQL error
那是因為 staging API 有改欄位所致
明天會把欄位那些改成新的

那一包 PR 就會很大了呢⋯⋯
mrorz 20:42:06
今天成功把 staging API 與 staging site 接起來囉:
https://github.com/cofacts/rumors-site/pull/83
mrorz 20:42:21
@sunrise91.t3 @lucien 求 review

2018-02-18

mrorz 20:42:06
今天成功把 staging API 與 staging site 接起來囉:
https://github.com/cofacts/rumors-site/pull/83

GitHub

201712 mappings refactor by MrOrz · Pull Request #83 · cofacts/rumors-site

Make necessary changes to make the UI compatible with API after 201712-mappings-refactor. Since we are having low test coverage in this repository, I am doing minimal changes to support the new API...

mrorz 20:54:49
這個是新版 DB mappings 的測試站(staging),歡迎大家戳戳他
https://cofacts.hacktabl.org/

大家可以測的東西有

文章頁面:
- 回應
- 幫回應評分
- 把現有回應加到文章裡
- 搜尋回應之後把回應加到文章裡
- 刪除回應

回應頁面:
- 幫回應評分
- 刪除回應

已知問題:
- 刪除回應之後文章回應數要重新整理才會變 --> 這個在 UI 改版時重寫就好
- 第一次註冊好像會出現 “Unauthorized”,重新整理之後才會註冊 --> 原因不明 orz
mrorz 20:55:43
除了已知問題之外,請回報遇到的其他問題唷

2018-02-19

mrorz 14:20:03
@ggm @acerxp511 我稍微統一了一下 unit test 的 syntax (請見 PR description)請 review 一下~
https://github.com/cofacts/rumors-line-bot/pull/56

GitHub

Improve unit test styles by MrOrz · Pull Request #56 · cofacts/rumors-line-bot

Use async-await to drop verbose promise then() handling Use es-modules syntax in fixtures to drop verbose export default {...} at the bottom of the file Use jest manual mocks to reduce the lines-of...

mrorz 15:26:20
另外,
Mappings refactor 最後的修改:LINE bot API calls 調整
在這裡完成囉
https://github.com/cofacts/rumors-line-bot/pull/57
ggm 01:11:00
ok
mrorz 15:29:40
「真的假的-staging」LINE bot 現在上面的是 mappings refactor 過後版本的程式唷。
LINE ID: @nkq3195z

歡迎大家戳戳他!

他接的資料庫跟測試站( https://cofacts.hacktabl.org/ ) 相同,在 staging 的 bot 送出的 article 會在 https://cofacts.hacktabl.org/ 被列出。測試站資料庫跟主站分開,所以不會污染到 http://cofacts.g0v.tw|cofacts.g0v.tw
mrorz 15:31:06
大家可以測的東西有:

- 傳送過短訊息
- 傳一篇超長文章送進資料庫(不用擔心送垃圾進去,資料庫跟主站是分開的)
- 去 https://cofacts.hacktabl.org/ 找一篇沒回過的文章去問 line bot
- 去 https://cofacts.hacktabl.org/ 找一篇只有 1 個回應的文章去問 line bot
- 去 https://cofacts.hacktabl.org/ 找一篇有很多回應、很多類似的文章去問 line bot
sunrise91.t3 17:59:16
我現在rumors-site測試台自己的回覆「刪除回應」沒顯示、「是否有幫助」是自己可點選的狀態。應該是資料格式改動的關係吧,但local我checkout到201712-mappings-refactor再merge staging-env跑run dev是正常的耶~ 我其實有點搞不清楚是怎麼回事~:sweat_smile:
mrorz 18:30:53
測試站的 appId 跟 local 的 appId 應該不太一樣
mrorz 18:31:20
所以可能會被 API 判斷成不同人
mrorz 18:35:56
不過 https://cofacts.hacktabl.org/replies 一排的「有人」(user 只拿到 `null`)應該也不太正常 orz
mrorz 21:02:36
這一點我知道為什麼啦~~

因為 migration script 根本就忘記了 users 這個 index
所以 staging 上面的 users 表其實一片空白~~
這也是為什麼大家 staging 都像沒註冊過一樣


https://github.com/cofacts/rumors-db/blob/master/db/migrations/201712-001-reindex.js <-- 完全沒 reindex `users`
mrorz 18:37:13
理論上你在 staging site 自己發的訊息,他應該會認得得才是正常的
mrorz 18:38:07
我可能要 trace 一下 API 那裡到底發生什麼事 QQ
sunrise91.t3 18:38:52
了解~ 晚點再試試~

2018-02-20

mrorz 00:01:37
staging db 被我弄壞了 orz
修理中
mrorz 00:30:04
Fixed

2018-02-21

mrorz 09:37:03
我們今天晚上 8pm 開會唷,請問 @ttcat 會來嗎
ttcat (not_staff) 11:56:58
今天爆炸,晚上有 community hangout