Add various options to support streaming app.net feed or other microblogging feeds

This commit is contained in:
Étienne Deparis 2014-10-13 00:58:07 +02:00
parent a5490c4264
commit 4519800066
2 changed files with 32 additions and 19 deletions

View File

@ -1,7 +1,4 @@
[DEFAULT]
# For deployment. It's on a don't wanna know basis :)
# logging_level = error
logging_level = debug
# e.g 'thedod'
username = MYTWISTERUSERNAME
# change to rpcuser and rpcpassword from ~/.twister/twister.conf
@ -10,13 +7,20 @@ rpc_url = http://MYRPCUSER:MYRPCPASSWORD@127.0.0.1:28332
db_filename = items.db
# this leaves 36 characters and a ... to get to 140. If we don't have that, we skip the item :(
max_url_length = 100
# Use your own feeds, of course :)
feeds = https://swatwt.com/favs/rss/en
https://github.com/thedod.atom
https://github.com/milouse.atom
# All the following options are optional
# For deployment. It's on a don't wanna know basis :)
# logging_level = error
logging_level = debug
# we don't want to flood more than that in a single run.
max_new_items_per_feed = 3
# to enable this, you need gdshortener: https://github.com/torre76/gd_shortener/
use_shortener = False
# tell is.gd to publicly show statistics for the shortened url
shortener_stats = True
# Use your own feeds, of course :)
feeds = https://swatwt.com/favs/rss/en
https://github.com/thedod.atom
https://github.com/milouse.atom

View File

@ -19,19 +19,19 @@ else:
main_config = main_config_file.defaults()
def get_bool_conf_option(option):
if main_config[option]:
if option in main_config and main_config[option]:
v = main_config[option]
return str(v).lower() in ('yes', 'true', 't', '1')
return False
def get_array_conf_option(option):
if main_config[option]:
if option in main_config and main_config[option]:
return main_config[option].split("\n")
return []
import logging
log_level = logging.ERROR
if main_config['logging_level']:
if 'logging_level' in main_config and main_config['logging_level']:
log_level = main_config['logging_level']
log_level = getattr(logging, log_level.upper())
@ -82,17 +82,26 @@ def main(max_items):
logging.debug('Skipping duplicate {0}'.format(eid))
else: # format as a <=140 character string
# Construct the link, possibly with shortener
entry_url = gdshortener.ISGDShortener().shorten(url=e.link, log_stat=get_bool_conf_option('shortener_stats'))[0] if get_bool_conf_option('use_shortener') else e.link
if not get_bool_conf_option('do_not_include_link'):
# Construct the link, possibly with shortener
entry_url = gdshortener.ISGDShortener().shorten(url=e.link, log_stat=get_bool_conf_option('shortener_stats'))[0] if get_bool_conf_option('use_shortener') else e.link
if len(entry_url) <= int(main_config['max_url_length']):
msg = u'{0} {1}'.format(entry_url,e.title)
if len(entry_url) <= int(main_config['max_url_length']):
msg = u'{0} {1}'.format(entry_url,e.title)
if len(msg)>140: # Truncate (and hope it's still meaningful)
msg = msg[:137]+u'...'
else: # Link too long. Not enough space left for text :(
msg = ''
else: # Link too long. Not enough space left for text :(
msg = ''
else:
entry_title = e.title
if 'skip_first_title_char' in main_config and main_config['skip_first_title_char']:
entry_title = entry_title[int(main_config['skip_first_title_char']):]
msg = u'{0}'.format(entry_title)
if len(msg)>140: # Truncate (and hope it's still meaningful)
msg = msg[:137]+u'...'
utfmsg = truncated_utf8(msg,140)# limit is 140 utf-8 bytes (not chars)
@ -123,7 +132,7 @@ def main(max_items):
if __name__=='__main__':
if args.maxitems != None:
n = args.maxitems
elif main_config['max_new_items_per_feed']:
elif 'max_new_items_per_feed' in main_config and main_config['max_new_items_per_feed']:
n = int(main_config['max_new_items_per_feed'])
else:
n = 0