-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstream.py
More file actions
57 lines (47 loc) · 1.95 KB
/
stream.py
File metadata and controls
57 lines (47 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import io
from urllib.request import urlopen
from PIL import ImageTk, Image
from sanitize import sanitize
class Stream:
DEFAULT_BOX_ART = None
DEFAULT_STREAM_PREVIEW = None
def __init__(self, stream, gameTitle, boxArtURL):
self.ID = stream['id']
self.viewerCount = sanitize(str(stream['viewer_count']))
self.gameID = stream['game_id']
self.type = stream['type']
self.userID = stream['user_id']
self.language = stream['language']
self.thumbnailURL = sanitize(stream['thumbnail_url'])
self.stylizedStreamName = sanitize(stream['user_name'])
self.streamTitle = sanitize(stream['title'])
self.gameTitle = sanitize(gameTitle)
self.tagIDs = stream['tag_ids']
self.startedAt = stream['started_at']
self.previewImage = sanitize(stream['thumbnail_url'].replace('{width}', '320').replace('{height}', '180'))
self.streamName = sanitize(stream['thumbnail_url'][52:].split('-')[0])
self.boxArtURL = boxArtURL
self.loadedBoxArtImage = None
self.loadedPreviewImage = None
def isLive(self, streams) -> bool:
for stream in streams:
if stream.streamName == self.streamName:
return True
return False
def setBoxArtImageFromURL(self):
try:
rawData = urlopen(self.boxArtURL).read()
im = Image.open(io.BytesIO(rawData))
self.loadedBoxArtImage = ImageTk.PhotoImage(im)
except ValueError:
self.loadedBoxArtImage = self.DEFAULT_BOX_ART
def setPreviewImageFromURL(self):
try:
rawData = urlopen(self.previewImage).read()
im = Image.open(io.BytesIO(rawData))
self.loadedPreviewImage = ImageTk.PhotoImage(im)
except ValueError:
self.loadedPreviewImage = self.DEFAULT_STREAM_PREVIEW
def setImagesFromURL(self):
self.setBoxArtImageFromURL()
self.setPreviewImageFromURL()