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
Automatically unpin old messages so you can always pin more!

PinRotate Automatically unpin old messages so you can always pin more! Installation You will need to install poetry to run this bot locally for develo

3 Sep 18, 2022
Resources for the 2021 offering of COMP 598

comp598-2021 Resources for the 2021 offering of COMP 598 General submission instructions Important Please read these instructions located in the corre

Derek Ruths 23 May 18, 2022
A Python script to delete movies with a certain tag after a certain amount of days.

radarr_autodelete Simple script, which deletes movies with a specific tag after a certain amount of days Pip Packages pip3 install pyarr python-dotenv

7 Dec 06, 2022
Werkzeug has a debug console that requires a pin. It's possible to bypass this with an LFI vulnerability or use it as a local privilege escalation vector.

Werkzeug Debug Console Pin Bypass Werkzeug has a debug console that requires a pin by default. It's possible to bypass this with an LFI vulnerability

Wyatt Dahlenburg 23 Dec 17, 2022
A simple but complete exercise to learning Python

ResourceReservationProject This is a simple but complete exercise to learning Python. Task and flow chart We are going to do a new fork of the existin

2 Nov 14, 2022
A reminder for stand-up roster

roster-reminder A reminder for stand-up roster Run the project Setup database The project use SQLite as database. You can create tables refer to roste

Jason Zhang 5 Oct 28, 2022
Convert three types of color in your clipboard and paste it to the color property (gamma correct)

ColorPaster [Blender Addon] Convert three types of color in your clipboard and paste it to the color property (gamma correct) How to Use Hover your mo

13 Oct 31, 2022
GitHub saver for stargazers, forks, repos

GitHub backup repositories Save your repos and list of stargazers & list of forks for them. Pure python3 and git with no dependencies to install. GitH

Alexander Kapitanov 23 Aug 21, 2022
Convert a .vcf file to 'aa_table.tsv', including depth & alt frequency info

Produce an 'amino acid table' file from a vcf, including depth and alt frequency info.

Dan Fornika 1 Oct 16, 2021
Simple Python API for the Ergo Platform Explorer

Ergo is a "Resilient Platform for Contractual Money." It is designed to be a platform for applications with the main focus to provide an efficient, se

7 Jul 06, 2021
Algorand Python API examples

Algorand-Py Algorand Python API examples This repo will hold example scripts to monitor activities on Algorand main net. You can: Monitor your assets

Karthik Dutt 2 Jan 23, 2022
pgvector support for Python

pgvector-python pgvector support for Python Great for online recommendations 🎉 Supports Django, SQLAlchemy, Psycopg 2, Psycopg 3, and asyncpg Install

Andrew Kane 37 Dec 20, 2022
A collection of python exercises to help your learning path!

How to use Step 1: run this command git clone https://github.com/TechPenguineer/Python-Exercises.git Step 2: Run this command cd Python-Exercises You

Tech Penguin 5 Aug 05, 2021
Hspice-Wave-Generator is a tool used to quickly generate stimuli souces of hspice format

Hspice-Wave-Generator is a tool used to quickly generate stimuli souces of hspice format. All the stimuli sources are based on `pwl` function of HSPICE and the specific complex operations of writing

3 Aug 02, 2022
flake8 plugin which forbids match statements (PEP 634)

flake8-match flake8 plugin which forbids match statements (PEP 634)

Anthony Sottile 25 Nov 01, 2022
Let's pretend you want to create a AWS Lambda project called "sns-processor".

Usage Let's pretend you want to create a AWS Lambda project called "sns-processor". Rather than using lambda and then editing the results to include y

1 Dec 31, 2021
Tenda D151 & D301 - Unauthenticated configuration download

Exploit Title: Tenda D151 & D301 - Unauthenticated configuration download (login included)

Ayoub 3 Jul 14, 2022
A git extension for seeing your Cloud Build deployment

A git extension for seeing your Cloud Build deployment

Katie McLaughlin 13 May 10, 2022
mypy plugin for PynamoDB

pynamodb-mypy A plugin for mypy which gives it deeper understanding of PynamoDB (beyond what's possible through type stubs). Usage Add it to the plugi

1 Oct 21, 2022
A OBS service to package a published repository into a tar.gz file

OBS Source Service obs-service-publish_tar obs-service-publish_tar will create a archive.tar[.tar compression] archive containing the published repo

Erico Mendonca 1 Feb 16, 2022