johnbuluba / yatcobot Goto Github PK
View Code? Open in Web Editor NEWYatcobot (Yet another twitter contest bot) is the most advanced and configurable bot for twitter contests and giveaways
License: GNU General Public License v2.0
Yatcobot (Yet another twitter contest bot) is the most advanced and configurable bot for twitter contests and giveaways
License: GNU General Public License v2.0
Hello,
And thanks for your amazing work.
Would it be possible to add a function that don't retweet contests that have less than X (example: 10) retweets, to avoid retweeting fake contests ?
Thanks.
Since I am dutch I only want dutch win tweets. Tag a friend is now only english. For example:
https://twitter.com/Zynteox/status/979743950981484545
Dutch:
Tag een vriend
(translated)
Tag a friend
is it possible to make this multilanguage ?
Its when it comments a tagged friend. I think "test" is the name of the dev app that I named it.
DEBUG:yatcobot.client:Ratelimit status: {'/application/rate_limit_status': 98.88888888888889, '/blocks/ids': 80.0, '/statuses/show/:PARAM': 99.77777777777777, '/search/tweets': 98.33333333333333}
DEBUG:yatcobot.scheduler:Rescheduling clear_queue for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: clear_queue
DEBUG:yatcobot.scheduler:Rescheduling update_ratelimits for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: update_ratelimits
DEBUG:yatcobot.client:Checking limits for application/rate_limit_status
DEBUG:yatcobot.client:Decreased remainin usages of /application/rate_limit_status. New value 177
DEBUG:yatcobot.client:Ratelimits was refreshed
DEBUG:yatcobot.client:Ratelimit status: {'/application/rate_limit_status': 98.33333333333333, '/blocks/ids': 80.0, '/statuses/show/:PARAM': 99.77777777777777, '/search/tweets': 98.33333333333333}
DEBUG:yatcobot.scheduler:Rescheduling clear_queue for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: clear_queue
DEBUG:yatcobot.scheduler:Rescheduling update_ratelimits for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: update_ratelimits
DEBUG:yatcobot.client:Checking limits for application/rate_limit_status
DEBUG:yatcobot.client:Decreased remainin usages of /application/rate_limit_status. New value 176
DEBUG:yatcobot.client:Ratelimits was refreshed
DEBUG:yatcobot.client:Ratelimit status: {'/application/rate_limit_status': 97.77777777777777, '/blocks/ids': 80.0, '/statuses/show/:PARAM': 99.77777777777777, '/search/tweets': 98.33333333333333}
DEBUG:yatcobot.scheduler:Rescheduling clear_queue for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: clear_queue
DEBUG:yatcobot.scheduler:Rescheduling update_ratelimits for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: update_ratelimits
DEBUG:yatcobot.client:Checking limits for application/rate_limit_status
DEBUG:yatcobot.client:Decreased remainin usages of /application/rate_limit_status. New value 175
DEBUG:yatcobot.client:Ratelimits was refreshed
DEBUG:yatcobot.client:Ratelimit status: {'/application/rate_limit_status': 97.22222222222221, '/blocks/ids': 80.0, '/statuses/show/:PARAM': 99.77777777777777, '/search/tweets': 98.33333333333333}
DEBUG:yatcobot.scheduler:Rescheduling clear_queue for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: clear_queue
DEBUG:yatcobot.scheduler:Rescheduling update_ratelimits for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: update_ratelimits
DEBUG:yatcobot.client:Checking limits for application/rate_limit_status
DEBUG:yatcobot.client:Decreased remainin usages of /application/rate_limit_status. New value 174
DEBUG:yatcobot.client:Ratelimits was refreshed
DEBUG:yatcobot.client:Ratelimit status: {'/application/rate_limit_status': 96.66666666666667, '/statuses/show/:PARAM': 99.77777777777777}
DEBUG:yatcobot.scheduler:Rescheduling update_blocked_users for after 300 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: update_blocked_users
DEBUG:yatcobot.client:Checking limits for blocks/ids
DEBUG:yatcobot.client:Decreased remainin usages of /blocks/ids. New value 14
DEBUG:yatcobot.scheduler:Rescheduling clear_queue for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: clear_queue
DEBUG:yatcobot.scheduler:Rescheduling update_ratelimits for after 60 seconds
DEBUG:yatcobot.scheduler:Scheduler is calling: update_ratelimits
DEBUG:yatcobot.client:Checking limits for application/rate_limit_status
DEBUG:yatcobot.client:Decreased remainin usages of /application/rate_limit_status. New value 173
DEBUG:yatcobot.client:Ratelimits was refreshed
DEBUG:yatcobot.client:Ratelimit status: {'/application/rate_limit_status': 96.11111111111111, '/blocks/ids': 93.33333333333333}
Can someone give me a good working limit value, the default one is too fast at max
Hi! Loving the bot so far, though I'm getting a couple of errors lately.
Last night it was working fine. I stopped the bot overnight, and continued in the morning. This was when these errors began.
I deleted the Yatcobot folder and git-cloned it again in case something borked when I stopped the bot, but it still happens.
https://s9.postimg.org/scf95e7xr/Screenshot_20180129-080227.png (apologies for the screenshot rather than a copy-paste. Termux couldn't copy the right parts of it)
<3
Greetings 5 of my bots are currently banned,
Is there any safer way then Yatcobot?
I dont see alot of activity here so just wondering.
So, in the last few days i changed the format of the config file, using yaml.
The reason behind that is that some features that was requested need more settings
and the json was already pretty messy.
Currently the new format is like
# consumer key for twitter api
consumer_key: null
# consumer secret for twitter api
consumer_secret: null
# access token key for twitter api
access_token_key: null
# access token secret for twitter api
access_token_secret: null
# The bot will stop when api calls remaining are under
# min_ratelimit_percent of the max that twitter allows
min_ratelimit_percent: 10
# Search for contest settings
search:
# Queries to use for searching giveaways.
# You can set the language for a specific query like this
# - query
# - query with language filter:
# lang: en
queries:
- RT to win
- Retweet and win
- Giveaway retweet:
lang:en
# Max tweets that holds the bot in memory to post
max_queue: 100
# The maximum quotes that will be recursively search
# for the original tweet
max_quote_depth: 20
# Some tweets are quotes of another tweet
# This is the mimimum similary between the quote and the post
min_quote_similarity: 0.5
# Keywords that if they appear in a post it will get
# priority for retweet
priority_keywords: ["pc", "iphone"]
# Actions that some giveaways require to enter
actions:
# Follow the user that posts the giveaway
follow:
# If this action is enabled
enabled: true
# Keywords to search in post for follow action
keywords: ["follow", "follower"]
# When max_following is reached, will unfollow oldest follows
max_following: 1950
# Favorite the post
favorite:
# If this action is enabled
enabled: true
# Keywords to search in post for favorite action
keywords: ["fav", "favorite"]
# Intervals of bot tasks
scheduler:
# How often will search for new posts
search_interval: 5400
# How often will retweet
retweet_interval: 600
# A random margin from retweet interval to avoid bot detection
retweet_random_margin: 60
# Update blocked users list so posts of them are not retweeted
blocked_users_update_interval: 300
# How often will delete oldest posts in queue
clear_queue_interval: 60
# How often will update the remaining api rate limits
rate_limit_update_interval: 60
# How often will check for new mentions
check_mentions_interval: 600
# Notifiers will notify when somenone mentions the user.(Possible win)
notifiers:
# Pushbullet notifier
pushbullet:
# If the notifier is enabled
enabled: false
# Pushbullet api token
token: my_pushbullet_token
Also please check the new documentation https://yatcobot.readthedocs.io/en/dev/index.html
Any insight or opinion is welcome, before i merge it to master and becomes pretty much permanent
Hello,
got the problem, that the bot retweeted one post and unfollowed one person and now nothing shows up in my window...
2019-11-28 16:49:04 - yatcobot.bot - INFO - === SCANNING FOR NEW CONTESTS === 2019-11-28 16:49:08 - yatcobot.bot - INFO - Got 50 new results for: RT to win 2019-11-28 16:49:08 - yatcobot.bot - INFO - Got 50 new results for: Retweet and win 2019-11-28 16:49:09 - yatcobot.bot - INFO - Got 50 new results for: Giveaway retweet 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200079159969533952 because it has 0 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200079159902367745 because it has 0 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1199710262506467329 because it has 4 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200076337718923266 because it has 3 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200060265104060416 because it has 15 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200079127644114946 because it has 0 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200078130549006342 because it has 14 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200029551222497281 because it has 15 retweets 2019-11-28 16:49:09 - yatcobot.plugins.filters - INFO - Skipping 1200078981866897408 because it has 1 retweets 2019-11-28 16:49:09 - yatcobot.bot - INFO - === CHECKING RETWEET QUEUE === 2019-11-28 16:49:09 - yatcobot.bot - INFO - Queue length: 76 2019-11-28 16:49:09 - yatcobot.bot - INFO - Retweeting: 1197875043168145412 There's 1 week until Black Friday so we might as well start warming up๐60,0.. 2019-11-28 16:49:16 - yatcobot.plugins.actions - INFO - Unfollowed: cohorted 2019-11-28 16:49:16 - yatcobot.plugins.actions - INFO - Follow: FUTBIN 2019-11-28 16:49:17 - yatcobot.plugins.actions - INFO - Favorite: 1197875043168145412
Hello
As you know this is the best twiter bot by far on github! But i want to make it even better!
Add here ideas for features that you want to be added
My ideas are:
Filters:
Add more tweet filters like max tweet age, max retweets and keywords
Antibot protection:
My account has been banned once (twitter is more aggressive after political bot's spam) and i'd like to make it harder for twitter to detect it. I have some propositions that will make the bot behave like a human like:
This is an already over engineered project and i want it to be even more :P , so I would like to hear your ideas (no matter how crazy they are).
Thanks !
Suppose I accidentally deleted the ignorelist file, it is possible to reset retweet interval instead of waiting 600 seconds when a tweet is already retweeted ?
yatcobot.bot - ERROR - Alredy retweeted tweet with id ...
Hi,
In my country we have a lot of contests that need to follow 2 accounts to be accepted as a participant.
If a contest's tweet has multiple @mentions, would it be possible to follow all these accounts, with a timing between the follow to avoid getting a rate limit?
Thanks.
PS: Could it be possible to add the support of 280 characters tweets? Thanks.
i put in all the right api keys,
i run it by just clicking the bot like it says in the post
im using windows 10
They're getting commented out. Can we have them as an "enclosed" string please?
Hi @buluba89
Just made this change, I do not know how to test this real quick with your test environment so can you have a look?
https://github.com/nivong/Yatcobot/commit/2e2757874a600cd151f77b3cb705f03fe3101ec7
I get the following error with the new bot:
confuse.ConfigTypeError: twitter.consumer_key: must be a string
Although my consumer key is what is working with the older version of the bot
Hi, is there any way to search and retweet results with English only?
I have lang: en defined in my config but some tweets have mixed English and none English in them so they still get through. Or even better use location to only search for tweets in certain countries. I understand these can only be found if the user/profile has defined their location but most businesses will have this set hence improve the quality of results and avoid so many fake giveaways.
Recent example:
*GIVE AWAY*
Dikarnakan tdk memungkinkan untuk GiveAway 1slice Red Velvet Pie dari Union, jadinya memutuskan untuk GA 100rb untuk 1orang.
caranya; Follow, Rep, Retweet. thats it
Diumumkan hari ini jam 23:00, dan pemenang dipilih secara acak, happy friday fellazz
Thanks.
I have tried Heroku and AWS' EC2 but I have been having trouble with each of them. Do you have any tips on how I could host this somewhere so I do not have to keep my machine on 24/7 and have this running in the background? Thanks!
Suddenly getting errors when running the bot when previously not had any issues, config is not changed. Has Twitter made some changes in the API which is causing this error?
2020-03-01 23:00:21 - yatcobot.bot - INFO - === CHECKING RETWEET QUEUE === 2020-03-01 23:00:21 - yatcobot.bot - INFO - Queue length: 75 2020-03-01 23:00:22 - yatcobot.bot - INFO - Retweeting: 1233442268528480258 We have a new giveaway today thanks to @RatalaikaGames. To win #Knightin+ o.. 2020-03-01 23:00:22 - yatcobot.client - ERROR - Twitter api error code:261 error:Application cannot perform write actions. Contact Twitter Platform Operations through https://support.twitter.com/forms/platform 2020-03-01 23:00:22 - yatcobot.client - ERROR - Error during twitter api call friendships/create (parameters: {'screen_name': 'TGGJustin', 'tweet_mode': 'extended'}) 2020-03-01 23:00:22 - yatcobot.scheduler - ERROR - Exception in scheduled task :enter_contest Traceback (most recent call last): File "C:\Yatcobot\yatcobot\scheduler.py", line 65, in run_task self.tasks[index].action() File "C:\Yatcobot\yatcobot\bot.py", line 84, in enter_contest action.process(post) File "C:\Yatcobot\yatcobot\plugins\actions.py", line 47, in process self.follow(post) File "C:\Yatcobot\yatcobot\plugins\actions.py", line 72, in follow self.client.follow(post['user']['screen_name']) File "C:\Yatcobot\yatcobot\client.py", line 136, in follow return self._api_call('friendships/create', {'screen_name': username}) File "C:\Yatcobot\yatcobot\client.py", line 189, in _api_call self._check_for_errors(response) File "C:\Yatcobot\yatcobot\client.py", line 207, in _check_for_errors raise TwitterClientException() yatcobot.client.TwitterClientException
Thanks.
Greeting, is there an option that removes people that you follow at a certain time lets say a week from added date.
I am currencty at my max.
This might sound crazy, but either the code within this project is malicious or someone is using an exploit within the code to promote their own posts. I noticed that over the last 12 hours or so my bot has retweeted many pro-liberal and pro-black movement posts, none of which are related AT ALL to contests and DO NOT contain any of the keywords in my configuration files. The output of the yatcobot script also gives no notification that it had retweeted these posts. Check out a few examples attatched.
I would highly recommend that someone check out the code to this project and that anyone using it stop immediately. Clearly something fishy is going on.
Hi there,
Thanks for this bot, it works very well, even if it sometimes retweet weird stuff.
Is there a way to filter the country or language for the search ? For example, if I want only tweets from Spain or in Spanish, is it possible ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.