Notion簡單介紹
Notion是一個用於工作管理或者日常生活行動管理的網站,擁有網頁、PC端軟件、手機端軟件(Android、IOS)等不同運行環境,可以實現在任意設備上的工作管理,並且所有運行環境都可以實時同步。
Notion以模塊(Block)爲基本單位,圍繞筆記文檔、知識庫、任務、輕量的數據庫等方面來組織內容。在這張白紙上,包括文字、表格、視頻、音頻、網頁、數據庫等等,各種類型內容都可以看作“模塊”。操作也非常簡單,用戶從左邊的工具欄中拖進來,或是採取“/”即可調用,隨意將內容組織,並且支持Markdown語法。
notion
當 Notion 遇到遊戲,兩者在我這裏碰撞出了一個遊戲庫。內容含有最近遊玩遊戲,每日遊戲時間記錄,每月遊戲時間記錄(熱力圖),每年遊戲時間記錄(熱力圖),遊戲時間排行,年度總結,往年遊玩數據(時間,數量,達成成就數),遊戲清單(包含遊戲具體信息和個人測評),截圖展示,攻略或文章收集。
遊戲清單概覽
具體內容純屬個人主觀感受,不喜誤噴。
遊戲清單框架搭建
Notion教程網絡上很多,關於註冊相關的請自行查找(建議使用教育郵箱進行註冊)。
Notion:https://www.notion.com/zh-cn
註冊完成後,輸入標題後就可以正式開始製作了(建議設置爲全寬)。
新建"遊戲清單數據庫"
正文中輸入"/database",在下拉框中選擇表格視圖即可生成一個數據庫表格。
新建頁面屬性
在名稱後點擊加號可以新建屬性項,在出現的下拉框中設置屬性項的類型,點擊新建的屬性項可以進行詳細設置(名稱、屬性類型等)。
目前我自己使用的屬性有:(類型:對應名稱)
標題:遊戲名
文本:name、開發商、我的評級
多選:遊戲類型、遊戲要素、遊玩平臺、遊玩狀態
日期:發售日期
數字:遊玩時長、已達成成就、總成就數、我的評分、appid
上次編輯時間:最近修改
網址:steamdb鏈接
函數:成就進度、成就進度條形圖、發售年份
函數部分較爲複雜,我會放在『Part 5 遊戲清單美化』(暫定)進行細節代碼說明。
創建完成之後可以先嚐試自己填寫(函數部分除外)。
點擊標題屬性欄右側的打開,可以查看對應的遊戲頁面,其中包含屬性欄(我這裏的屬性欄樣式是重新設置過的,正常的應爲從上到下的一列,感興趣可以自行探索,後面美化篇會寫詳細教程),點擊回車可以進行正文編寫。
查看填入的屬性
但是,我們的steam庫不可能只有幾款遊戲,成百甚至上千款遊戲我們不可能一個一個的設置,工作量會十分巨大。我採用的是利用SteamAPI和NotionAPI,使用Python寫一個腳本,讓計算機每日運行來更新數據,我們要做的只有爲喜歡的遊戲寫寫評測。下面我將展示腳本中SteamAPI部分的代碼。
Steam Web API
獲取基本信息
首先我們要獲取Steam Web API密鑰,獲取方式十分簡單,網址是Steam 社區 :: Steam Web API 密鑰,按照提示點幾下就行了,域名可以隨便填寫,需要記住它提供的32位密鑰。
SteamID(17位數字)和Account ID可以在SteamDB點擊右上角個人信息查看。
基本信息
關於SteamAPI的使用可以查看下面的鏈接:
Steam Web API簡易使用介紹:https://blog.imzy.ink/steamapi/
Steam Web API Documentation and Tester:https://steamapi.xpaw.me/
Steam Web API - Valve Developer Community:https://developer.valvesoftware.com/wiki/Steam_Web_API
使用的庫文件和全局變量設置
下面所列打碼部分填上剛剛獲取的三串密鑰(字符串格式),網址是可能會使用的網址,變量名稱可自行更改。
基本參數設置
Steam API Class
我們建一個SteamAPI類,其中的變量hearder可寫可不寫,不寫就設置爲空字符串,想寫的話可以參照User-Agent的獲取:https://blog.csdn.net/yigehunzibale/article/details/134145853。
類變量
Steam API Class方法函數
checkConnection():接受url和參數,如果成功獲取數據則返回json格式,反之則報錯。
endConnection():關閉Session對話池。
checkConnection方法和endConnection方法
getOwnedGames():獲取已擁有遊戲信息。
getOwnedGames方法
SteamAPI返回的信息大致如下圖所示,我們這個方法直接返回"response"的鍵值,包括遊戲總數和擁有遊戲的信息。
SteamAPI:getOwnedGames()
getRecentlyPlayedGames():獲取最近(兩週)遊玩遊戲信息
getRecentlyPlayedGames方法
返回值爲字典,鍵名爲"appid"(字符串),值爲字典,其中包含鍵名:遊戲名"game_name"、總遊玩時間"playtime_forever"、遊戲圖標鏈接id"img_icon_url"。
getPlayerAchievements():獲取遊戲成就信息
getPlayerAchievements方法
輸入參數爲遊戲的appid(整型)
返回值爲字典,鍵名:已達成成就數"achieved_num"和總成就數"achievement_num"
getGameDetails():獲取遊戲商店信息
getGameDetails方法
輸入參數爲遊戲的appid(整型)
返回值爲字典,鍵名從上到下是:遊戲名"name"、開發商"developers"、發售日期"release_date"、appid"appid"、遊戲平臺"platform"、封面圖片鏈接"header_image"、庫背景圖片鏈接"cover_image"、遊戲圖標id"icon_image"、steamdb鏈接"steamdb_link"。
getTotalState():獲取遊玩的總數據
getTotalState方法
返回值爲字典,鍵名:總遊玩過的遊戲"total_played_games"、遊玩總時長"total_playtime"、達成成就個數"total_completed_achievements"、擁有的遊戲數量"total_games"。
getYearReplay():獲取Steam年度回顧
getYearReplay方法
輸入參數爲想要查詢的年份(字符串)
返回值爲字典,鍵名:年總遊戲時長"total_playtime_hours"、年遊玩遊戲數量"total_play_summary"、該年每月遊玩時間"month_playtime"、該年每月遊戲數量"month_playgame_num"。
這個方法無法直接從SteamAPI的接口中獲取數據,只好從Steam年度回顧爬取數據了。如果有知道相關API接口可以在評論區指出。
以上就是我所使用的所有方法了,由於是自用,註釋寫的就少了點,可以使用GPT自行加註釋。
本人還是學生,代碼可能會出現BUG,如有發現或者是改進辦法可以在評論區指出,還請嘴下留情。
總結
注意:運行的時候最好開着魔法,不開連接會非常不穩定,有時可能會報錯。
以上,SteamAPI對象就寫完了,各位可以設置完三個關鍵密鑰後,print各個函數的輸出感受一下。
下一章我會構建NotionAPI對象來接受數據,修改後傳入新建的遊戲清單中。
可以提前瀏覽相關內容:
使用 Notion API 集成:https://blog.imzy.ink/steamapi/
Introduction:https://developers.notion.com/reference/intro
Notion API的使用詳解:https://www.hangge.com/blog/cache/detail_3440.html
最後,球球點贊和盒電。
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com