Giter Site home page Giter Site logo

arionmiles / diomedes Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 1.0 153 KB

Email alerts for your favorite movies about to hit theaters

Home Page: https://diomedes.in

License: MIT License

Python 58.32% HTML 36.24% Dockerfile 0.82% Shell 3.35% CSS 0.88% JavaScript 0.39%
django docker docker-compose gunicorn nginx postgresql redis

diomedes's People

Contributors

arionmiles avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

dhavalsavalia

diomedes's Issues

BMS Trending Movie suggestions

Use BMS Trending/Quickbook to suggest similar named movies (ask region before showing add-movies view, store it in cookie and pass to the model form)

Limit the input to the suggestions only.

Create Footer

Footer should contain link to the repository, etc.
Put more stuff here when you think of it.

Improve Search criteria (Remove search_count field)

Instead of searching N number of times, search until we're past the date set by the user.

find_movies()

if task.search_count > config.SEARCH_COUNT_LIMIT: 
# timezone.localdate() > task.movie_date

Also, when selecting unfinished tasks, use:
find_movies_job()

unfinished_tasks = Task.objects.filter(task_completed=Fale, dropped=False, movie_date__gte=timezone.localdate())
# test timezone.localdate() on production machine first

This should remove the search_count field from the model Task.

This feature will remove the following dependency:

  • django-constance

Improve Job Scheduling setup

Current setup uses django-rq along with Redis and works as a Django management command.

monzo/response runs their cron jobs like this:

  1. Create an endpoint which runs the job function on receiving a request.
  2. Run cron in a container which hits that endpoint at whatever interval you want.
    https://github.com/monzo/response#quick-start

This setup will remove the following dependencies:

  • django-rq
  • rq
  • rq-scheduler
  • redis

And remove the Redis container, replacing it with cron container, and make it a whole lot easier, certainly less convoluted.

Additionally, create a model which stores results/exceptions of every job run for inspection later, when something goes wrong (which it will...)

Take a look at the Dockerfiles in the response library for reference.

Use Caddy instead of Nginx

Caddy has automatic HTTPS with LetsEncrypt, can also serve static files.

Current Nginx-Certbot is very tiresome, the script init-letsencrypt.sh is not very reliable, since the links to TLS parameters change very often.

Using Caddy container with a custom Caddyfile would be the best solution.

Integrate Telegram social login

Telegram Social login will allow us to send notifications on telegram to the user.
https://telegram.org/blog/login

django-allauth supports Telegram login: https://django-allauth.readthedocs.io/en/latest/providers.html#telegram

Social login will allow the bot to communicate first to the user.

Can use telegra.ph to form the message with showtimes info, allowing telegram users to see the data with Telegram's Instant View.

Figure out a way to know if a user logged in via telegram or email, store this info in the database, and appropriately direct the notification to the corresponding platform. Maybe even generate the email/telegraph depending on the method of login used.

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.