|
|
@ -6,11 +6,44 @@ |
|
|
|
This file contains the web server for a simple bookmarking application |
|
|
|
""" |
|
|
|
|
|
|
|
import os |
|
|
|
import _thread |
|
|
|
from bottle import Bottle, run, response, route, template |
|
|
|
from api import API |
|
|
|
from telethon.sync import TelegramClient, events |
|
|
|
|
|
|
|
_api = API() |
|
|
|
|
|
|
|
# Load in the API tokens required for a telegram bot |
|
|
|
api_id = os.environ.get('telethon_api_id', False) |
|
|
|
api_hash = os.environ.get('telethon_api_hash', False) |
|
|
|
api_token = os.environ.get('telethon_token', False) |
|
|
|
|
|
|
|
# Create an instance of the Telethon bot |
|
|
|
if api_id and api_hash and api_token: |
|
|
|
bot = TelegramClient('bot', api_id, api_hash).start(bot_token=api_token) |
|
|
|
else: |
|
|
|
bot = False |
|
|
|
|
|
|
|
bot_state = False |
|
|
|
|
|
|
|
@bot.on(events.NewMessage) |
|
|
|
async def handle_message_events(event): |
|
|
|
if 'start' in event.raw_text: |
|
|
|
await event.reply('started') |
|
|
|
|
|
|
|
def start_bot_thread(): |
|
|
|
""" |
|
|
|
We run the telegram bot in a seperate thread |
|
|
|
to be able to also serve the HTTP content. |
|
|
|
|
|
|
|
The bot thread will be idle most of the time |
|
|
|
due to the async nature of it, and the fact |
|
|
|
that it won't receive much traffic |
|
|
|
""" |
|
|
|
bot.start() |
|
|
|
bot.run_until_disconnected() |
|
|
|
|
|
|
|
@route('/') |
|
|
|
def index(): |
|
|
|
return "This is the index" |
|
|
@ -42,4 +75,6 @@ def update_bookmark_uri(bookmark_id, uri): |
|
|
|
return _api.update_bookmark_uri(bookmark_id, uri) |
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
# Start the Telegram bot and the bottle server |
|
|
|
_thread.start_new_thread(start_bot_thread, ()) |
|
|
|
run(host='localhost', port=8080) |