Coder Social home page Coder Social logo

killedmufasa / amputatorbot Goto Github PK

View Code? Open in Web Editor NEW
161.0 2.0 10.0 1.12 MB

Remove AMP from your URLs. AmputatorBot is a highly specialised Reddit and Twitter bot that automatically replies to comments, submissions and tweets containing AMP URLs with the canonical link(s). It's also available as a website and REST API. See also: https://www.reddit.com/r/AmputatorBot/comments/ehrq3z/why_did_i_build_amputatorbot/.

Home Page: https://www.amputatorbot.com/

License: GNU General Public License v3.0

Python 100.00%
amp amp-html reddit reddit-bot amputatorbot bot praw praw-reddit reddit-api open

amputatorbot's Introduction

#AmputatorBot

TL;DR: Remove AMP from your URLs. AmputatorBot is a highly specialised Reddit (and former Twitter) bot that automatically replies to comments and submissions containing AMP URLs with the canonical link(s). It's also available as a website and REST API, but those haven't been made open source here.

FAQ, About & Why

Features

#AmputatorBot demo

Main features:

  • 10 specialised canonical-finding methods, allowing for an accuracy rate of +97%. For example, by:
    • Scanning the HTML contents
    • Detecting and following redirects
    • Guessing, and then checking article similarity with newspaper
    • … and many more!
  • Detect AMP links using 14 patterns, and reply to items containing them with the canonical link and some info
  • Compare and test canonicals and pick the best
  • Stream Reddit comments, submissions and inbox messages
  • Extensively tested using a (private) database of over 200K AMP links and their canonicals, also functioning as caching

Nice bonuses:

  • Detect unique URLs with URLExtract and strip them of any artifacts
  • Object-oriented, allowing for a handy, free and publicly available API
  • Allow users to opt out and undo this
  • Send DMs when summoned by a user
  • Items interacted with are automatically being tracked
  • Log and datafiles are automatically generated

See also:

Set up

  1. Clone the repository
  2. Run pip install -r requirements.txt to install dependencies
  3. Change the filename of static.txt to .py (see /static)
  4. Configure the application by tweaking static.py (required)
  5. Choose a check-[...].py script to run
  6. Configure the script's settings in run_bot(). Set everything (guess_and_check, reply_to_post, save_to_database) to False when starting out. Consider deleting or disabling the database canonical method.
  7. Run the script - All logs and required datafiles should be automatically and dynamically created.
  8. Stop the script.
  9. Check out the new files in /data and edit them to your liking.
  10. Re-run the script and enjoy!

Support the project

  • Summon AmputatorBot on Reddit, like so: u/AmputatorBot. For more info, see here.
  • Give feedback: Most new features and improvements are directly influenced by your feedback. So, hit me up if you have any feedback. Contact me on Reddit or Fill an issue.
  • Star: By starring the project here on GitHub, we can reach more folks and unlock new options. It also gives me something to brag about :p
  • Contribute: Pull requests are a great way to contribute directly to the code and functionality.
  • Spread the word: In the end, the only goal of AmputatorBot is to allow people to have an informed choice. You can help by simply spreading the word!

Sponsor

The server for the bot, website, and API costs about €10 ($12) per month. If you support AmputatorBot's mission and can chip in, any donation would be a huge help. Every bit goes straight into server expenses. Thanks a bunch!

PayPal: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EU6ZFKTVT9VH2
Or, donate to our friends in Ukraine instead: https://u24.gov.ua

From the bottom of my heart, huge thanks for the tremendous support! <3

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.