From 42d038c2d73868fd1cd292de102af7754273ee6c Mon Sep 17 00:00:00 2001 From: Saurabh Chaturvedi Date: Wed, 6 Mar 2019 00:58:51 +0530 Subject: [PATCH] Ability to tune #followers --- Procfile | 2 +- chirps/main.py | 4 +++- chirps/managers.py | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Procfile b/Procfile index d8756ec..62f4d72 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -worker: python3 -m chirps.main --rate=300 --fav --retweet --follow --scrape scrape_thenewstack get_tech_news +worker: python3 -m chirps.main --rate=300 --fav --retweet --follow --follow_limit=6000 --scrape scrape_thenewstack get_tech_news diff --git a/chirps/main.py b/chirps/main.py index 5194fb4..916971c 100644 --- a/chirps/main.py +++ b/chirps/main.py @@ -29,6 +29,8 @@ action="store_true") parser.add_argument("--follow", help="flag to enable following people", action="store_true") +parser.add_argument("--follow_limit", help="maximum number of people to follow", + default=4000, type=int) parser.add_argument("--scrape", help="flag to specify content scraping", default="", nargs="*") args = parser.parse_args() @@ -63,7 +65,7 @@ def main(): account_manager = managers.AccountThread(ACCOUNT_HANDLER, UPLOAD_HANDLER, url, args.rate, args.fav, args.retweet, args.follow, - args.scrape) + args.follow_limit, args.scrape) admin = managers.StreamThread( "Admin", ADMIN_HANDLER, ACCESS_SECRET, url, functions.admin_action) streamer.start() diff --git a/chirps/managers.py b/chirps/managers.py index 8d98de4..25bf9b8 100644 --- a/chirps/managers.py +++ b/chirps/managers.py @@ -86,7 +86,7 @@ def run(self): class AccountThread(threading.Thread): """Account thread manages favoriting, retweeting and following people who tweet interesting stuff.""" - def __init__(self, handler, upload_handler, url, sleep_time, fav, retweet, follow, scrape): + def __init__(self, handler, upload_handler, url, sleep_time, fav, retweet, follow, follow_limit, scrape): threading.Thread.__init__(self) self.handler = handler self.upload_handler = upload_handler @@ -98,6 +98,7 @@ def __init__(self, handler, upload_handler, url, sleep_time, fav, retweet, follo self.fav = fav self.retweet = retweet self.follow = follow + self.follow_limit = follow_limit self.scrape = scrape print('sleep_time: %s, fav: %s, retweet: %s, follow: %s, scrape: %s' % (self.sleep_time, self.fav, self.retweet, self.follow, self.scrape) @@ -120,7 +121,7 @@ def run(self): if self.follow: friends_ids = self.handler.friends.ids(screen_name=screen_name)["ids"] - if len(friends_ids) > 4000: + if len(friends_ids) > follow_limit: # To unfollow old follows because Twitter doesn't allow a large # following / followers ratio for people with less followers.