mirror of
https://github.com/nova-r/fediplug.git
synced 2025-03-10 15:49:00 +01:00
debug support
This commit is contained in:
parent
4f1ecbd83c
commit
1488ceb964
3 changed files with 25 additions and 4 deletions
|
@ -1,5 +1,7 @@
|
|||
'''Entry point for command-line interface.'''
|
||||
|
||||
options = {'debug': False}
|
||||
|
||||
import os
|
||||
path = os.path
|
||||
import sys
|
||||
|
@ -49,9 +51,12 @@ def get_client_credentials(instance):
|
|||
)
|
||||
|
||||
@click.group()
|
||||
def cli():
|
||||
@click.option('-d', '--debug', is_flag=True, help='Print debug messages.')
|
||||
def cli(debug):
|
||||
'''A program to play music your friends post on Mastodon.'''
|
||||
|
||||
options['debug'] = debug
|
||||
|
||||
ensure_dirs()
|
||||
|
||||
@cli.command()
|
||||
|
|
|
@ -7,6 +7,7 @@ from lxml.etree import HTML # pylint: disable=no-name-in-module
|
|||
import mastodon
|
||||
from youtube_dl.utils import DownloadError
|
||||
|
||||
from fediplay.cli import options
|
||||
import fediplay.keyring as keyring
|
||||
from fediplay.queue import Queue
|
||||
|
||||
|
@ -25,9 +26,18 @@ class StreamListener(mastodon.StreamListener):
|
|||
self.queue = queue
|
||||
self.users = users
|
||||
|
||||
if options['debug']:
|
||||
print('listener initialized with users={}'.format(self.users))
|
||||
|
||||
def on_update(self, status):
|
||||
if options['debug']:
|
||||
print('incoming toot: username={}'.format(status.account.username))
|
||||
|
||||
if self.users and status.account.username not in self.users:
|
||||
if options['debug']:
|
||||
print('skipping toot due to username filtering')
|
||||
return
|
||||
|
||||
tags = extract_tags(status)
|
||||
if 'fediplay' in tags:
|
||||
links = extract_links(status)
|
||||
|
@ -68,7 +78,7 @@ def stream(instance, users, client_id, client_secret, access_token, cache_dir='.
|
|||
'''Stream statuses and add them to a queue.'''
|
||||
|
||||
client = build_client(instance, client_id, client_secret, access_token)
|
||||
users = [normalize_username(u, instance) for u in users]
|
||||
users = [normalize_username(user, instance) for user in users]
|
||||
listener = StreamListener(Queue(cache_dir), users)
|
||||
click.echo('==> Streaming from {}'.format(instance))
|
||||
client.stream_user(listener)
|
||||
|
@ -85,7 +95,6 @@ def normalize_username(user, instance):
|
|||
# remove instance if it is our own instance
|
||||
return user if (len(tmp) == 1 or tmp[1] != instance) else tmp[0]
|
||||
|
||||
|
||||
def link_is_internal(link):
|
||||
'''Determines if a link is internal to the Mastodon instance.'''
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ from threading import Thread, Lock
|
|||
import click
|
||||
from youtube_dl import YoutubeDL, utils
|
||||
|
||||
from fediplay.cli import options
|
||||
import fediplay.env as env
|
||||
|
||||
|
||||
|
@ -62,7 +63,13 @@ class Getter(object):
|
|||
self.cache_dir = cache_dir
|
||||
|
||||
def _progress_hook(self, progress):
|
||||
if progress['status'] == 'downloading' and progress['filename'] not in self.filenames:
|
||||
if options['debug']:
|
||||
print('progress hook: status {}, filename {}'.format(
|
||||
progress['status'], progress['filename']
|
||||
))
|
||||
|
||||
if (progress['status'] == 'downloading' and
|
||||
progress['filename'] not in self.filenames):
|
||||
self.filenames.append(progress['filename'])
|
||||
|
||||
def get(self, url):
|
||||
|
|
Loading…
Reference in a new issue