Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f9f64d19c | ||
|
|
7996c6adad | ||
|
|
50d55da7dc |
@@ -2,7 +2,7 @@
|
|||||||
pytchat is a python library for fetching youtube live chat without using yt api, Selenium, or BeautifulSoup.
|
pytchat is a python library for fetching youtube live chat without using yt api, Selenium, or BeautifulSoup.
|
||||||
"""
|
"""
|
||||||
__copyright__ = 'Copyright (C) 2019 taizan-hokuto'
|
__copyright__ = 'Copyright (C) 2019 taizan-hokuto'
|
||||||
__version__ = '0.0.4.3'
|
__version__ = '0.0.4.4'
|
||||||
__license__ = 'MIT'
|
__license__ = 'MIT'
|
||||||
__author__ = 'taizan-hokuto'
|
__author__ = 'taizan-hokuto'
|
||||||
__author_email__ = '55448286+taizan-hokuto@users.noreply.github.com'
|
__author_email__ = '55448286+taizan-hokuto@users.noreply.github.com'
|
||||||
|
|||||||
@@ -33,5 +33,6 @@ symbols = {
|
|||||||
"ARS\xa0": {"fxtext": "ARS", "jptext": "アルゼンチン・ペソ"},
|
"ARS\xa0": {"fxtext": "ARS", "jptext": "アルゼンチン・ペソ"},
|
||||||
"CLP\xa0": {"fxtext": "CLP", "jptext": "チリ・ペソ"},
|
"CLP\xa0": {"fxtext": "CLP", "jptext": "チリ・ペソ"},
|
||||||
"NOK\xa0": {"fxtext": "NOK", "jptext": "ノルウェー・クローネ"},
|
"NOK\xa0": {"fxtext": "NOK", "jptext": "ノルウェー・クローネ"},
|
||||||
"BAM\xa0": {"fxtext": "BAM", "jptext": "ボスニア・兌換マルカ"}
|
"BAM\xa0": {"fxtext": "BAM", "jptext": "ボスニア・兌換マルカ"},
|
||||||
|
"SGD\xa0": {"fxtext": "SGD", "jptext": "シンガポール・ドル"}
|
||||||
}
|
}
|
||||||
@@ -33,5 +33,6 @@ symbols = {
|
|||||||
"ARS\xa0": {"fxtext": "ARS", "jptext": "アルゼンチン・ペソ"},
|
"ARS\xa0": {"fxtext": "ARS", "jptext": "アルゼンチン・ペソ"},
|
||||||
"CLP\xa0": {"fxtext": "CLP", "jptext": "チリ・ペソ"},
|
"CLP\xa0": {"fxtext": "CLP", "jptext": "チリ・ペソ"},
|
||||||
"NOK\xa0": {"fxtext": "NOK", "jptext": "ノルウェー・クローネ"},
|
"NOK\xa0": {"fxtext": "NOK", "jptext": "ノルウェー・クローネ"},
|
||||||
"BAM\xa0": {"fxtext": "BAM", "jptext": "ボスニア・兌換マルカ"}
|
"BAM\xa0": {"fxtext": "BAM", "jptext": "ボスニア・兌換マルカ"},
|
||||||
|
"SGD\xa0": {"fxtext": "SGD", "jptext": "シンガポール・ドル"}
|
||||||
}
|
}
|
||||||
@@ -124,6 +124,21 @@ def test_superchat(mocker):
|
|||||||
assert "LCC." in ret["items"][0]["id"]
|
assert "LCC." in ret["items"][0]["id"]
|
||||||
assert ret["items"][0]["snippet"]["type"]=="superChatEvent"
|
assert ret["items"][0]["snippet"]["type"]=="superChatEvent"
|
||||||
|
|
||||||
|
def test_unregistered_currency(mocker):
|
||||||
|
processor = CompatibleProcessor()
|
||||||
|
|
||||||
|
_json = _open_file("tests/testdata/unregistered_currency.json")
|
||||||
|
|
||||||
|
_, chatdata = parser.parse(parser.get_contents(json.loads(_json)))
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"video_id" : "",
|
||||||
|
"timeout" : 7,
|
||||||
|
"chatdata" : chatdata
|
||||||
|
}
|
||||||
|
ret = processor.process([data])
|
||||||
|
assert ret["items"][0]["snippet"]["superChatDetails"]["currency"] == "[UNREGISTERD]"
|
||||||
|
|
||||||
|
|
||||||
def _open_file(path):
|
def _open_file(path):
|
||||||
with open(path,mode ='r',encoding = 'utf-8') as f:
|
with open(path,mode ='r',encoding = 'utf-8') as f:
|
||||||
|
|||||||
160
tests/testdata/unregistered_currency.json
vendored
Normal file
160
tests/testdata/unregistered_currency.json
vendored
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
{
|
||||||
|
"timing": {
|
||||||
|
"info": {
|
||||||
|
"st": 164
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"csn": "",
|
||||||
|
"response": {
|
||||||
|
"responseContext": {
|
||||||
|
"serviceTrackingParams": [{
|
||||||
|
"service": "CSI",
|
||||||
|
"params": [{
|
||||||
|
"key": "GetLiveChat_rid",
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"key": "c",
|
||||||
|
"value": "WEB"
|
||||||
|
}, {
|
||||||
|
"key": "cver",
|
||||||
|
"value": "2.20191219.03.01"
|
||||||
|
}, {
|
||||||
|
"key": "yt_li",
|
||||||
|
"value": "0"
|
||||||
|
}]
|
||||||
|
}, {
|
||||||
|
"service": "GFEEDBACK",
|
||||||
|
"params": [{
|
||||||
|
"key": "e",
|
||||||
|
"value": ""
|
||||||
|
}, {
|
||||||
|
"key": "logged_in",
|
||||||
|
"value": "0"
|
||||||
|
}]
|
||||||
|
}, {
|
||||||
|
"service": "GUIDED_HELP",
|
||||||
|
"params": [{
|
||||||
|
"key": "logged_in",
|
||||||
|
"value": "0"
|
||||||
|
}]
|
||||||
|
}, {
|
||||||
|
"service": "ECATCHER",
|
||||||
|
"params": [{
|
||||||
|
"key": "client.name",
|
||||||
|
"value": "WEB"
|
||||||
|
}, {
|
||||||
|
"key": "client.version",
|
||||||
|
"value": "2.2"
|
||||||
|
}, {
|
||||||
|
"key": "innertube.build.changelist",
|
||||||
|
"value": "228"
|
||||||
|
}, {
|
||||||
|
"key": "innertube.build.experiments.source_version",
|
||||||
|
"value": "2858"
|
||||||
|
}, {
|
||||||
|
"key": "innertube.build.label",
|
||||||
|
"value": "youtube.ytfe.innertube_"
|
||||||
|
}, {
|
||||||
|
"key": "innertube.build.timestamp",
|
||||||
|
"value": "154"
|
||||||
|
}, {
|
||||||
|
"key": "innertube.build.variants.checksum",
|
||||||
|
"value": "e"
|
||||||
|
}, {
|
||||||
|
"key": "innertube.run.job",
|
||||||
|
"value": "ytfe-innertube-replica-only.ytfe"
|
||||||
|
}]
|
||||||
|
}],
|
||||||
|
"webResponseContextExtensionData": {
|
||||||
|
"ytConfigData": {
|
||||||
|
"csn": "ADw",
|
||||||
|
"visitorData": "%3D%3D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"continuationContents": {
|
||||||
|
"liveChatContinuation": {
|
||||||
|
"continuations": [{
|
||||||
|
"timedContinuationData": {
|
||||||
|
"timeoutMs": 10000,
|
||||||
|
"continuation": "continuation"
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
"actions": [{
|
||||||
|
"addChatItemAction": {
|
||||||
|
"item": {
|
||||||
|
"liveChatPaidMessageRenderer": {
|
||||||
|
"id": "dummy_id",
|
||||||
|
"timestampUsec": "1576850000000000",
|
||||||
|
"authorName": {
|
||||||
|
"simpleText": "author_name"
|
||||||
|
},
|
||||||
|
"authorPhoto": {
|
||||||
|
"thumbnails": [
|
||||||
|
{
|
||||||
|
"url": "https://yt3.ggpht.com/------------/AAAAAAAAAAA/AAAAAAAAAAA/xxxxxxxxxxxx/s32-x-x-xx-xx-xx-c0xffffff/photo.jpg",
|
||||||
|
"width": 32,
|
||||||
|
"height": 32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://yt3.ggpht.com/------------/AAAAAAAAAAA/AAAAAAAAAAA/xxxxxxxxxxxx/s32-x-x-xx-xx-xx-c0xffffff/photo.jpg",
|
||||||
|
"width": 64,
|
||||||
|
"height": 64
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"purchaseAmountText": {
|
||||||
|
"simpleText": "[UNREGISTERD]10,800"
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"runs": [
|
||||||
|
{
|
||||||
|
"text": "This is unregistered currency."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"headerBackgroundColor": 4291821568,
|
||||||
|
"headerTextColor": 4294967295,
|
||||||
|
"bodyBackgroundColor": 4293271831,
|
||||||
|
"bodyTextColor": 4294967295,
|
||||||
|
"authorExternalChannelId": "http://www.youtube.com/channel/author_channel_url",
|
||||||
|
"authorNameTextColor": 3019898879,
|
||||||
|
"contextMenuEndpoint": {
|
||||||
|
"commandMetadata": {
|
||||||
|
"webCommandMetadata": {
|
||||||
|
"ignoreNavigation": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"liveChatItemContextMenuEndpoint": {
|
||||||
|
"params": "___params___"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"timestampColor": 2164260863,
|
||||||
|
"contextMenuAccessibility": {
|
||||||
|
"accessibilityData": {
|
||||||
|
"label": "コメントの操作"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, "clientId": "00000000000000000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
},
|
||||||
|
|
||||||
|
"xsrf_token": "xsrf_token",
|
||||||
|
"url": "/live_chat/get_live_chat?continuation=0",
|
||||||
|
"endpoint": {
|
||||||
|
"commandMetadata": {
|
||||||
|
"webCommandMetadata": {
|
||||||
|
"url": "/live_chat/get_live_chat?continuation=0",
|
||||||
|
"rootVe": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"urlEndpoint": {
|
||||||
|
"url": "/live_chat/get_live_chat?continuation=0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user