Login
Sign Up For Free
English
中文 (繁體)
中文 (香港)
中文 (简体)
日本語
Filipino
Bahasa Indonesia
Bahasa Melayu
Pусский
Português (Brasil)
Magyar
Français
Español
Deutsch
Čeština
العربية
Català
Dansk
Ελληνικά
فارسی
Suomi
Gaeilge
Hindi
עברית
Hrvatski
Italiano
Norsk bokmål
Nederlands
한국어
Polski
Română
Slovenský
Svenska
Türkçe
українська
беларуская
ไทย
Standard view
小爛【趕啊趕文去!】
說
5 years ago
[技術噗]是時候研究加減表符了
latest #31
掰噗~
說
5 years ago
有這種事!?
Mr.Zombie
說
5 years ago
啊...啊...
小爛【趕啊趕文去!】
5 years ago
@Edit 5 years ago
雖然噗浪有
Plurk API
但這裡純粹研究如何利用簡單JS以tampermonkey或書籤達成加減表符
取得用戶表符:/EmoticonManager/getUserEmoticons
param: {token}
刪表符:/Emoticons/remove
param: {token, hash_id}
hash_id是指表符圖片的hash
至於token可以透過top.SiteState.getToken()取得
立即下載
小爛【趕啊趕文去!】
5 years ago
先在這裡擺幾張表符方便隨時測試
小爛【趕啊趕文去!】
5 years ago
當游標移到留言時(右上角顯示時間/編輯),留言的噗會多出class=show-response-manager
所以利用以下可以一口氣抓取滑鼠移到的留言內的所有表符網址,再從網址直接取得表符的hash_id:
document.querySelectorAll('.show-response-manager .text_holder img.emoticon_my')
小爛【趕啊趕文去!】
5 years ago
點開表符列表後,點選群組後會多出class=current,因此可以利用以下取得現時選擇的表符群組id:
$('#emoticon-tabs li.current[emo-group-type="custom"]').attr('emo-group-id')
有群組id就可以利用getUserEmoticons去抓取所有表符hash_id(用css selector來抓可以)
小爛【趕啊趕文去!】
5 years ago
好了寫完表符群組刪除了
刪除後表符列表不會立即更新,要麼重新整理頁面,要麼就呼叫下面這個(沒理解錯的話)
window.EmoticonCustom.load(true);
小爛【趕啊趕文去!】
5 years ago
加表符:/Emoticons/add
param: {form_token, hash_id, keyword, group_id}
注意keyword可以空掉,會自動產生keyword=emoXXX
group_id可以空掉,表符會加到預設第一組別(即是愛心)
建立新群組:/EmoticonManager2/newGroup
param: {token}
response json除了ok=true,還有g=group-id
所以把表符加入新群組的步驟就是:
1)呼叫newGroup,取得group-id
2)呼叫add並填入正確group-id
小爛【趕啊趕文去!】
5 years ago
雖然成功新增了但總覺得數字不太對勁
抹茶雪酪
5 years ago
101722wwwww
小爛【趕啊趕文去!】
5 years ago
看來是一口氣加入幾張才有這種情況,按著順序慢慢加減就沒問題了
小爛【趕啊趕文去!】
5 years ago
群組批量刪除基本上寫完了
加表符比較麻煩,要特別多弄個按鍵彈出加入哪個群組
小爛【趕啊趕文去!】
5 years ago
刪除表符群組:選擇表符群組之後,按書籤,一鍵刪除
將留言內的表符加入到指定群組:
有點慢和蠢,但是功能上是成功的!
小爛【趕啊趕文去!】
5 years ago
@Edit 5 years ago
真正試用:
作為程式員的我
覺得好方便啊!快速刪掉200個表符,再一口氣把平常都不會用的狐狸表符加進來了
看看狐狸表符的加入次序都這麼完美,完全按照留言的順序!!!
但是用的時候總覺得有點不安,萬一手誤編輯了舊表符噗/錯誤刪除就救不回來了,所以正確備份很重要
由於表符主要是用hash_id砌成,理論上可以做到完整匯出然後砍掉重新匯入的功能,這樣子連keyword都能夠保留
小爛【趕啊趕文去!】
5 years ago
不知道有沒有人真的在等我的程式,但低調發佈一下好了
注意:本人絕不保證成功或沒有出錯,請做足備份,加錯刪錯與本人無關
以下只限電腦版使用
首先在電腦瀏覽器裡,將這個加入為JS書籤:
表符工具
然後在你的噗浪頁面或者你的表符頁面按一下這個表符工具的書籤:
你就能看到上方有「群組N:(組群表符數)/總表符數」
右上角多了刪除群組的按鍵
注意這邊為免誤刪重要表符,所以預設的第一群組愛心表符不開放刪除功能,按鍵是灰色的
換句話,沒噗幣就用不了這個刪表符功能
除非你自行修改程式
小爛【趕啊趕文去!】
5 years ago
例如我在貓群組裡按「刪除群組」,為免手誤所以這邊會再詢問是否要刪除:
按確定之後,群組內的表符就清空了(群組本身不刪除)
小爛【趕啊趕文去!】
5 years ago
@Edit 5 years ago
至於加表符就很簡陋,沒有檢查800個,也只針對留言內的表符(噗首的表符沒有這個功能),請慎用
------------
先將設定妥當上述的表符工具,再將這個加入為JS書籤:
加表符
1)先打開表符噗,留言內有你的一堆表符
2)先點擊之前的表符工具書籤,確認看到群組計數
3)點擊留言的下箭咀
4)點擊「加表符」書籤,會問你要加到哪個群組
之前清空的貓表符是群組18,這裡就輸入「18」
5)確定後,留言內的表符就會加回來了
小爛【趕啊趕文去!】
5 years ago
重點注意:
這個工具只算是整理表符時幫助快速處理
人手加減表符或改群組後,它不會即時更新表符數等資料,必須重新按「表符工具」來更新
所以真正使用前最好重新載入頁面,點擊書籤才使用(特別是加減功能)
美智◆カトルの心
5 years ago
@Edit 5 years ago
路過推了舊噗不好意思,這個工具實在太好用了,不知道可不可以許願功能!希望可以有大量拖移表符位置,跟多個表符刪除(而非群組直接刪除)QQ!!這裡用了你許多的工具,實在太感謝了
小爛【趕啊趕文去!】
5 years ago
HM_Michi
: 這些都不會做
小爛【趕啊趕文去!】
5 years ago
@Edit 5 years ago
籠統來說其實不難,只是在表符上方加個onclick handler,點擊時就把表符ID推進array裡,點擊兩次就把表符ID從array抽走,在群組上加個ondrop handler就差不多了。
但實際做下去,官方的點擊表符=官方現在的用法,自己設計的點擊表符功能=大量處理表符,寫下去就要顧及不能和官方的功能混淆,還有UI上的……
真要寫下去必須先解讀官方的minify js,而我不擅長寫前端和插件。
小爛【趕啊趕文去!】
5 years ago
@Edit 5 years ago
HM_Michi
: 如果是多個表符刪除,有個稍微加快一點速度的手動方法:
1)把你要刪的表符拖在一起(要刪十四個就排成相連的兩行)
2)點擊選取第一個要刪的表符
3)右手滑鼠按「刪除」,左手按Enter確定刪除
4)官方會自動選取右側下一個表符
因為官方自動選取下個表符,所以你不斷玩遊戲般滑鼠定格留在「刪除」鍵點擊+按Enter就能快速刪除一整排
不用讓游標在點選表符、按「刪除」、按「確定刪除」之間來回
小爛【趕啊趕文去!】
5 years ago
[繼續技術流]前幾天看偷偷說,有旅人提到關於表符搬至其他群組的辦法:把想搬的表符放在一個留言裡,然後用手機app點表符,就像加新表符一樣。實測之後可行,但表符ID好像不同了,這就不理想……
仔細想想,利用抓留言內的表符進行批量刪除/搬群組也可行欸。
程式上跟加表符應該差不多,程式可重用,大概就URL不同吧
設定表符群組:/EmoticonManager2/setGroup
param: {token, hash_id, group_id}
小爛【趕啊趕文去!】
5 years ago
進一步去想,應該有設定表符順序的辦法:
設定表符順序:/EmoticonManager2/setOrder
param: {token, hash_id, after_hash_id}
註:表符應該以Linked List來排序,hash_id是搬的表符,after_hash_id是插到哪個表符之後。如果要搬到第一位,after_hash_id="+"
同樣道理,只要在留言裡把表符先排序妥當,就可以不斷setOrder了
(前提是已經加了表符和表符已放入同一群組)
不過排序比起批量刪除/搬群組麻煩
小爛【趕啊趕文去!】
5 years ago
先來貼一堆狼表符來測試:
小爛【趕啊趕文去!】
5 years ago
@Edit 5 years ago
總算完成了!!可以拯救我那快要爆掉的表符庫!!
利用留言進行批量的加表符/刪表符/移動群組!有按鍵就是比較輕鬆!!
移除狼表符:
加入狼表符:
將狼表符移到狐表符群組:
------
接下來應該整理一下那醜陋的程式碼(雖然懶得整理也不擅長JS...)
小爛【趕啊趕文去!】
4 years ago
小爛【趕啊趕文去!】
4 years ago
忽然在思考突破800表符的方法
考慮到貼網址也可以顯示表符,不介意方括號的話,那麼用插件突破800表符其實很容易辦到,只要有一個按鈕,按下去能顯示表符網址就很簡單了
基於太懶的關係,直接測試覆蓋掉原本的官方表情,結論是可行的
小爛【趕啊趕文去!】
4 years ago
最初的思考方式是直接插入全新群組,但是硬插進去官方表符通不過去,有幾處要改,插入自訂表符也有難度
弄到一半覺得搞群組的話,大概大修改/乾脆寫個不依賴現時表符邏輯的全新JS才辦得到
那麼最懶的辦法就是直接替換原有的官方表符,測試過確認非常容易辦到
理論上,加一枚按鈕,可以輕鬆辦到官方>狐>真人>小表符>官方的旋轉式切換(或者直接加個下拉選單更簡單)
小爛【趕啊趕文去!】
4 years ago
我真是天才,天才不會公開程式碼
再修正改良一下就能給自己用了,突破800不是夢
雖然我不經常用表符
小爛【趕啊趕文去!】
4 years ago
既然突破800不是夢
那麼就來思考如何製作最基本的tag搜尋功能
測試一下,可以在getEmoticons之後加filter來達到過濾功能(以下就是只顯示emo7*的表符)
那麼tag搜尋功能也不是夢
可是在做夢之前我是不是該研究一下噗浪卡卡的死因,快樂地寫一堆最後死掉也是很慘的
back to top
delete
reply
edit
cancel
cancel