A script that will warn you, by opening a new browser tab, when there are new content in your favourite websites.

Overview

web check

A script that will warn you, by opening a new browser tab, when there are new content in your favourite websites.

logo

What it does

The script will check, when run, if there are any changes in the websites. If any changes are found, it will open a new browser tab.

Not every website can be scrap.

How does it work?

After adding an url, the script creates a copy of website's content in your hard drive. When run again, it will compare the website against that stored content line by line, if there are any differences a new tab will be open. Note: Script don't need to open browser when running, you'll only see the terminal.

A lot of websites have some kind of calendar, that means, every day there will be changes in those websites. To avoid this, you can add a unique css selector to each stored url. With this unique identification, the script targets only specific parts of the website, and avoid unnecessary calls to browser.

If there is a change, a new back up file will be created at storage/url_data/backup.

All urls are stored in a JSON file with all the needed information, including encoding.

How to get the unique css selector

Go to the website, right click in the zone you want the script to check. Go to inspect mode. Hover your mouse until you see (usually in blue) everything you want. Right click and copy selector. Paste that in the css field in add url, or modify url.

Set up

Running the script

Once everything is installed, launch the script with web_check/main.pyw. There are four tabs.

home

  • Home: it's the main tab. From here you can launch checker.py with the button Run!. Checker.py it's in charge of all the logic. It will access your stored url and compare it with the actual website.

  • Add url: From this tab, you can add a new url for checking, and its unique css selector.

    Important: url have to start with http:// or https://. Hit Submit new url and the script will make all necessary checks.

    There is a second option, Import file. Import file will let you select a .txt file with several urls, and all of them will be stored.

    The txt file needs to follow the structure: url(white space)css selector. Url only means script will download whole website. Only one url per line.

    https://github.com/

    https://www.reddit.com/ #SHORTCUT_FOCUSABLE_DIV

    https://postal.fsc.ccoo.es/Inicio #divMainContent

  • Modify url: If you need to change an url css selector, you can do it from here. Enter a new css selector, or leave it empty for capturing the whole site, and hit submit.

  • Delete url: Two options for deleting. Check one, or several, urls and hit delete. Delete all will delete all urls stored.

At the Options' menu, it's possible to reset the url_list.txt if, for some reason, the file can't be read with 'reset url'. 'Create batch file' will let automate the script, for faster use.

Automate the script

There is no need to run web_check/main.py every time you want to check your websites, for that, only checker.py is required.

You can run checker.py manually whenever you want, but that's tedious and forgettable, first you would have to activate a virtual environment, and then, run checker.py. With 'Create batch file' you only have to point where python.exe is (the virtual environment one) and a directory where the file will be created.

After all, it's easier to run directly web_check.bat or add the batch file to windows' task scheduler.

Create shortcut

Create shortcut at Options' menu will create a batch file with all information about the script itself and the virtual environment.

Now you don't need to activate each time a venv, web_check.bat will take care of it.

Log file

Every time the script is run, script will output a log file. It clears its content automatically for easier reading. Any error, or info, will be written here.

Log is located in storage/logs/log.txt.

Copyright (C) 2021 Jaime Álvarez Fernández
Comments
  • Update some classes to functions.

    Update some classes to functions.

    • Refactor:
      • CreateFolder = create_folder
      • DeleteUrlGUI = delete_url
      • ModifyCssGUI = modify_css_selector
    • get_charset move to class NewUrl
    • Add comments for easier reading
    enhancement 
    opened by Jaime-alv 0
  • New frames for modify url and delete url

    New frames for modify url and delete url

    Create new frames in both, modify url and delete url. When calling def refresh, tabs don't get destroy, instead, only frames with the different url gets destroy and create again, getting a better refresh

    enhancement 
    opened by Jaime-alv 0
  • Clean main.py

    Clean main.py

    main.py needs to be cleaned with a class, it should be easier to pass arguments and whatever I need into the diferent functions. It will improve its readability

    enhancement Must have 
    opened by Jaime-alv 0
  • Modify url

    Modify url

    Closes #13, closes #4, closes #5

    • Add, modify and delete are all in the same file for easier access.
    • There is a new backup folder for those website with changes, you can see the differences manually.
    • Backup files have now _backup added.
    opened by Jaime-alv 0
  • Some nice improvements

    Some nice improvements

    Closes #10, closes #7

    • Add encoding as a variable.
    • Upgraded script for using classes.
    • Change regex for domain_name(), now it should work better.
    • Setup.py works with if not exists() for all files, including log
    opened by Jaime-alv 0
Releases(v.1.2.0)
  • v.1.2.0(Nov 9, 2021)

    What's Changed

    • Upgrade file paths by @Jaime-alv in https://github.com/Jaime-alv/web_check/pull/38

    Full Changelog: https://github.com/Jaime-alv/web_check/compare/v1.1.0...v.1.2.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Oct 13, 2021)

    • New whats_new.txt file.
      • File clean each time
      • File starts with today's date for easier use.
      • Only write down differences.
    • temp.txt move to url_data.
    • Update README.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Oct 6, 2021)

  • v0.5.1(Oct 5, 2021)

  • v0.5.0(Oct 2, 2021)

  • v.0.4.0(Sep 28, 2021)

    The script works, it's only command line and you have to run it manually, but it works as intended. setup.py will create necessary folders and files required. add_url.py is the module in charge of adding, deleting and modifying the files and fields needed for the script. main.py is the one that compares websites with the ones already stored, if there is any difference it will open the website in your default browser. After adding a website, you only need to run main.py

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Sep 27, 2021)

  • v0.3.0(Sep 21, 2021)

    Scripts works on a basic level. You can add a new url through add_url.py followed by a css selector and the script will store it. When run from main.py, script will compare to the stored version an open it if necessary.

    Source code(tar.gz)
    Source code(zip)
Owner
Jaime Álvarez
Passionate about tinkering and knowledge.
Jaime Álvarez
List of short Codeforces problems with a statement of 1000 characters or less. Python script and data files included.

Shortest problems on Codeforces List of Codeforces problems with a short problem statement of 1000 characters or less. Sorted for each rating level. B

32 Dec 24, 2022
In this project, we are going to display the battery notification and the time left for the battery to drain out using the battery capacity value.

In this project, we are going to display the battery notification and the time left for the battery to drain out using the battery capacity value.

Ritoban Biswas 1 Dec 20, 2021
Simple kivy project to help new kivy users build android apps with python.

Kivy Calculator A Simple Calculator made with kivy framework.Works on all platforms from Windows/linux to android. Description Simple kivy project to

Oussama Ben Sassi 6 Oct 06, 2022
Python version of RocketLeague-Dropshot-Calculated-shot

Python version of RocketLeague-Dropshot-Calculated-shot. This is just to demo around and a tool I used to develop the actual plugin.

JareBear 1 Jan 14, 2022
A fast Python in-process signal/event dispatching system.

Blinker Blinker provides a fast dispatching system that allows any number of interested parties to subscribe to events, or "signals". Signal receivers

jason kirtland 1.4k Dec 31, 2022
An AddOn storing wireguard configuration

Wireguard Database Connector Overview Development Status: 0.1.7 (alpha) First of all, I'd like to thank Jared McKnight for wireguard who inspired me t

Markus Neubauer 3 Dec 30, 2021
Structured, dependable legos for Starknet development.

cairomate • Structured, dependable legos for starknet development. Directory Structure contracts ├─ defi │ ├─ ChainlinkPriceOracle — "Simple price or

andreas 127 Nov 23, 2022
Small C-like language compiler for the Uxn assembly language

Pyuxncle is a single-pass compiler for a small subset of C (albeit without the std library). This compiler targets Uxntal, the assembly language of the Uxn virtual computer. The output Uxntal is not

CPunch 13 Jun 28, 2022
Your copilot to studies and work (Pomodoro-timer, Translate and Notes app)

Copylot Your copilot to studies and work (Pomodoro-timer, Translate and Notes app) Copylot are three applications in one: Pomodoro Translate Notes Cop

Eduardo Mendes 20 Dec 16, 2022
The Google Assistant on a rotary phone

Google Assistant Rotary Phone Shoutout to my dad who had this idea a year ago and I'm only now getting around to doing it. Notes This is the code used

rydercalmdown 10 Nov 04, 2022
A collection of simple tools that proved to be needed for hadling large periodic calculations with the VASP software package.

VESTA-tools A collection of simple tools that proved to be needed for handling large periodic calculations with the VASP software package. distTotCalc

Ilia Kichev 2 Dec 14, 2021
NFT generator for Solana!

Solseum NFT Generator for Solana! Check this guide here! Creating your randomized uniques NFTs, getting rarity information and displaying it on a webp

Solseum™ VR NFTs 145 Dec 30, 2022
API wrapper for VCS hosting system.

PythonVCS API wrapper for VCS hosting system. Supported platforms Gitea Github, Gitlab, Bitbucket support will not, until that packages is not updated

MisileLaboratory 1 Apr 02, 2022
Find virtual hosts (vhosts) from IP addresses and hostnames

Features Enumerate vhosts from a list of IP addresses and domain names. Virtual Hosts are enumerated using the following process: Supplied domains are

3 Jul 09, 2022
Este software fornece interface gráfica para o escputil e tem por finalidade testar e fazer limpeza no cabeçote de impressão....

PrinterTools O que é PrinterTools? PrinterTools é uma ferramenta gráfica que usa o escputil para testar e fazer limpeza de cabeçote de impressão em si

Elizeu Barbosa Abreu 1 Dec 21, 2021
Subcert is an subdomain enumeration tool, that finds all the subdomains from certificate transparency logs.

Subcert Subcert is a subdomain enumeration tool, that finds all the valid subdomains from certificate transparency logs. Table of contents Setup Demo

A3h1nt 59 Dec 16, 2022
March-madness - March Madness results 1985-2021

march-madness Results for all 2,268 NCAA Division I Men's Basketball Tournament games since the modern format was introduced in 1985. Includes years,

Darik Harter 2 Feb 26, 2022
Python tools for working with Orbit Ephemeris Messages (OEMs).

Python Orbit Ephemeris Message tools Python tools for working with Orbit Ephemeris Messages (OEMs). Development Status Installation The oem package is

Brad Sease 4 Apr 06, 2022
Python code to control laboratory hardware and perform Bayesian reaction optimization on the MIT Make-It system for chemical synthesis

Description This repository contains code accompanying the following paper on the Make-It robotic flow chemistry platform developed by the Jensen Rese

Anirudh Nambiar 11 Dec 10, 2022
Decoupled Smoothing in Probabilistic Soft Logic

Decoupled Smoothing in Probabilistic Soft Logic Experiments for "Decoupled Smoothing in Probabilistic Soft Logic". Probabilistic Soft Logic Probabilis

Kushal Shingote 1 Feb 08, 2022