diff --git a/feed2twister.conf.example b/feed2twister.conf.example index 6e0db66..9b43b17 100644 --- a/feed2twister.conf.example +++ b/feed2twister.conf.example @@ -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 diff --git a/feed2twister.py b/feed2twister.py index e94e797..4a3491c 100644 --- a/feed2twister.py +++ b/feed2twister.py @@ -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