Code Monkey home page Code Monkey logo

yatcobot's People

Contributors

auxproc avatar briankhan avatar connawiles avatar hkinney avatar johnbuluba avatar kurozael avatar morittt avatar philippbehmer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

yatcobot's Issues

Minimum RT limit

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.

Limits reached too fast

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

KeyError: 'score'

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)

Bots banned replacement for Yatco?

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.

I NEED YOUR OPINION FOR NEW CONFIG!!!

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

Stuck after one retweet

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

New feature ideas ! Add here !

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:

    1. Sleep time: sleep over night and dont post for some hours
    2. Uneven distribution of posts throughout the day. (Gaussian or some other distribution)
    3. Pseudopost: Generate posts using machine learning and post them (that should be challenging :-))

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 !

Reset retweet interval when tweet is already retweeted

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 ...

Multiple follow

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.

program does not work for me

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

New config errors: report here!

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

English Only?

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.

Twitter API changed?

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.

Max following

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.

Twitter account being used to promote someone's agenda?

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.

why
why2
why3

Pushbullet not receiving messages

Greetings,

It looks like pushbullet is not receiving any messages,
Any solutions or a replacement for Yatcobot?

Tested on Sonarr with no issues on there.
Using same token but no results on Yatcibot
image

Language

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 ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.