Giter VIP home page Giter VIP logo

linkspam's People

Contributors

anticompositenumber avatar

Stargazers

 avatar

Watchers

 avatar  avatar

linkspam's Issues

Decide if this should be moved to a different tool

It makes most sense to run linkspam jobs on the Grid, but grid jobs can't be started from k8s (where the webservice runs). Options:

  1. Split linkspam into it's own tool, with it's own frontend webservice running on the grid.
  2. Split linkspam into it's own tool, with it's own non-user-facing webservice running on the grid that only takes requests from anticompositetools
    2.1. Do that, but on AntiCompositeBot
  3. Use a grid webservice or other communication method on anticompositetools to run linkspam jobs
  4. Run the main anticompositetools webservice on the grid.

Blocks AntiCompositeNumber/anticompositetools#1 and partially AntiCompositeNumber/anticompositetools#4

K8s after all.

Toolforge provides a redis instance, which means that I could spin up Celery instead of using the grid.

Pro:

  • The grid is becoming more and more outdated
  • Newer python versions available sooner
  • Webservices run from k8s, meaning I can use the toolforge-maintained configuration instead of uwsgi-plain

Con:

  • I don't know redis and celery very well
  • I'd have to set up and maintain more things instead of depending on the grid

Questions:

  • What is inter-process communication like?
  • What is database and file access like?
  • How does monitoring and control work?

https://flask.palletsprojects.com/en/1.1.x/patterns/celery/
https://wikitech.wikimedia.org/wiki/Help:Toolforge/Kubernetes#Kubernetes_continuous_jobs
https://wikitech.wikimedia.org/wiki/Help:Toolforge/Redis_for_Toolforge

Format timestamps nicely

Timestamps should be displayed nicely, instead of as a raw ISO 8601 string. Relative dates are probably best for the front page, but I think I want locale-formatted dates on the report pages. In either case, the ISO string should be shown as a tooltip.

Define valid report statuses

Currently in use are "new", "default", and "automatic". Manual reports will have statuses for recently created reports and stale reports.

Expire old manual reports

Old manual reports should expire and be removed. Somewhere between 2 weeks and 1 month is probably a good balance between stability and staleness.

Remove enwiki runpage

The non-maintainer shutoff is currently a runpage on enwiki. Now that this tool doesn't have a static frontend, it would make sense to have this shutoff in the tool itself, if a shutoff is necessary at all.

It would be a good idea to hide it behind OAUTH though.

  • Determine if a global shutoff is necessary
    • If yes, move to web app
      • Require OAUTH auth to disable
      • Display obvious messages that the tool is disabled
      • Stop running jobs as well as preventing new ones
    • If no, remove unneded code

Create configurator for new reports

Even for automatic jobs, it would be helpful to not have to manually edit the JSON file. Saving should be limited to authenticated users (#9), and automatic jobs that aren't yet configured in cron should be marked as disabled.

Implement OAUTH authentication for new jobs

Authentication to OAUTH should be required to submit a new job. Manual jobs can be submitted directly after authenticating, but automatic jobs require server-side action.

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.