First release version
This commit is contained in:
parent
d4974c0e5c
commit
7fa5c6a713
6 changed files with 29 additions and 24 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
src/__pycache__
|
||||
*.swp
|
||||
src/.token
|
||||
src/server.conf
|
||||
|
|
25
src/main.py
25
src/main.py
|
@ -6,37 +6,43 @@ from twitch import TwitchClient
|
|||
import json
|
||||
import cherrypy
|
||||
|
||||
ver = '1.00'
|
||||
|
||||
|
||||
class FleastServer(object):
|
||||
def __init__(self):
|
||||
try:
|
||||
with open('.token', 'r') as reader:
|
||||
self.twitch_token = reader.read().strip()
|
||||
with open('./web/fl.html', 'r') as reader:
|
||||
self.index = reader.read()
|
||||
self.index_page = reader.read()
|
||||
with open('./web/fl_template_main.html', 'r') as reader:
|
||||
self.templ_main = reader.read()
|
||||
with open('./web/fl_template_stream.html', 'r') as reader:
|
||||
self.templ_stream = reader.read()
|
||||
self.client = TwitchClient(self.twitch_token, freq = 1)
|
||||
except e:
|
||||
print("Cannot read token for twitch app or templates, abort.")
|
||||
exit(1)
|
||||
self.client = TwitchClient(self.twitch_token, freq = 1)
|
||||
|
||||
|
||||
@cherrypy.expose
|
||||
def index(self):
|
||||
return 'Hello World'
|
||||
def index(self, game=None, lang=None):
|
||||
return self.fleast(game, lang)
|
||||
|
||||
@cherrypy.expose
|
||||
def fleast(self, game=None, lang=None):
|
||||
if game is None and lang is None:
|
||||
return self.index
|
||||
return self.index_page.format(_version_ = ver)
|
||||
|
||||
cherrypy.log('Getting game:"%s" language:%s' % (game, lang))
|
||||
data = self.client.get_streams(game, lang)
|
||||
|
||||
if data is None:
|
||||
return 'Internal Error' #Do Better
|
||||
return 'Internal Error<br>Tell me more at <a href="https://twitter.com/alexvanin">https://twitter.com/alexvanin</a>'
|
||||
|
||||
if data['_total'] == 0:
|
||||
return self.templ_main.format(data['_total'], '')
|
||||
return self.templ_main.format( _stream_num_ = data['_total'], _stream_list_ = '', _version_ = ver)
|
||||
|
||||
cherrypy.log('Found %d streams' % data['_total'])
|
||||
|
||||
|
@ -45,12 +51,13 @@ class FleastServer(object):
|
|||
for s in streams:
|
||||
result_str += self.templ_stream.format(s['channel']['url'], s['preview']['medium'],s['channel']['status'], \
|
||||
s['channel']['display_name'], s['viewers']) +'\n'
|
||||
return self.templ_main.format(data['_total'], result_str)
|
||||
|
||||
return self.templ_main.format(_stream_num_ = data['_total'], _game_name_ = game, _stream_list_ = result_str, _version_ = ver)
|
||||
|
||||
|
||||
def main():
|
||||
server = FleastServer()
|
||||
cherrypy.quickstart(server, '/','./server.conf')
|
||||
cherrypy.quickstart(server, '/fleast', './server.conf')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
[global]
|
||||
server.socket_port: 8080
|
||||
|
||||
[/style.css]
|
||||
tools.staticfile.on = True
|
||||
tools.staticfile.filename = "/home/alexvanin/tmp/av/fleast/fleast/src/web/style.css"
|
BIN
src/web/favicon.ico
Normal file
BIN
src/web/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -5,8 +5,9 @@
|
|||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>FLeast</title>
|
||||
<meta name="description" content="Simple HTML5 Page layout template with header, footer, sidebar etc.">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/png">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
@ -16,7 +17,7 @@
|
|||
<section id="pageContent">
|
||||
<article>
|
||||
<h2>Usage:</h2>
|
||||
<p>Write down a game name and choose language </p>
|
||||
<p>Write down a game name and choose language.<br>Name should be _exact_ name from Twitch i.e. csgo should be "Counter-Strike: Global Offensive" </p>
|
||||
<form method="get" action="./fleast">
|
||||
<table class="Input">
|
||||
<tbody>
|
||||
|
@ -40,7 +41,8 @@
|
|||
|
||||
</section>
|
||||
<footer>
|
||||
<p>Developed by Alex Vanin | <a href="https://twitter.com/AlexVanin" target="_blank">twitter</a> | <a href="https://github.com/AlexVanin/fleast" target="_blank">github</a> </p>
|
||||
<p>Developed by Alex Vanin | <a href="https://twitter.com/AlexVanin" target="_blank">twitter</a> | <a href="https://github.com/AlexVanin/fleast" target="_blank">github</a><br>
|
||||
Version: {_version_} </p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>FLeast</title>
|
||||
<meta name="description" content="Simple HTML5 Page layout template with header, footer, sidebar etc.">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
@ -16,7 +16,7 @@
|
|||
<section id="pageContent">
|
||||
<article>
|
||||
<h2>Usage:</h2>
|
||||
<p>Write down a game name and choose language </p>
|
||||
<p>Write down a game name and choose language.<br>Name should be _exact_ name from Twitch i.e. csgo should be "Counter-Strike: Global Offensive" </p>
|
||||
<form method="get" action="./fleast">
|
||||
<table class="Input">
|
||||
<tbody>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<td><label>Language </label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input name="game" type="text" maxlength="255" value=""/> </td>
|
||||
<td><input name="game" type="text" maxlength="255" value="{_game_name_}"/> </td>
|
||||
<td><select class="element select medium" name="lang">
|
||||
<option value="ru" selected="selected">ru</option>
|
||||
<option value="en" >eng</option>
|
||||
|
@ -39,15 +39,16 @@
|
|||
</p>
|
||||
</article>
|
||||
<artivle>
|
||||
<h2>Found {0} streams: </h2><br>
|
||||
<h2>Found {_stream_num_} streams: </h2><br>
|
||||
|
||||
<div class="container">
|
||||
{1}
|
||||
{_stream_list_}
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
<footer>
|
||||
<p>Developed by Alex Vanin | <a href="https://twitter.com/AlexVanin" target="_blank">twitter</a> | <a href="https://github.com/AlexVanin/fleast" target="_blank">github</a> </p>
|
||||
<p>Developed by Alex Vanin | <a href="https://twitter.com/AlexVanin" target="_blank">twitter</a> | <a href="https://github.com/AlexVanin/fleast" target="_blank">github</a><br>
|
||||
Version: {_version_} </p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
|
|
Loading…
Reference in a new issue