CheckChanĀ¹
CheckChan is a universal webpage content monitoring tool that can detect changes in webpage content and send notifications to WeChat
Store Installation
Microsoft Edge | Google Chrome |
---|---|
![]() | ![]() |
Click the above icons to enter the store page or directly search for āCheckChanā in the store
Official Video Tutorial
Detailed version, nearly 2 hours
Open Source Statement
ā ļø The browser plugin is not open source. The code in the docker directory is only for security checks and compiling multi-platform images, using GPLv3 license with additional conditions:
- The default ServerChan channel integration must not be modified or deleted.
- Other message channels must not be integrated and republished.
- After meeting the above two conditions, follow the GPLv3 license.
Latest Version
- PluginĀ·Chrome/Edge: 2024.10.05.13.57 Download
- Docker Image (Cloud + Remote Desktop All-in-One): 2024.10.10.17.20 Docker Hub
- Documentation: 2024.10.11.10.14
- Update Log: GitHub
- Ecosystem: RSSHub Browser Plugin Integration Version (Source Code | Download)
For Docker image installation commands, please refer to the cloud deployment section below
What is āCheckChanā
CheckChan is a webpage content monitoring tool produced by FTQQBalloon, consisting of an Edge/Chrome browser plugin and a self-deployable cloud service.
Based on the browser plugin, it can theoretically monitor any content (text) on webpages through a visual selector. In addition to browser notifications, it can work with ServerChan to push changes to WeChat or mobile phones.
CheckChan works by opening webpages in the browser plugin background for monitoring, thus completely simulating real user behavior. It can monitor most complex dynamic webpages, backend pages requiring login, and (in most cases) automatically maintain login status.
Besides supporting webpage content (Dom) monitoring, it also supports HTTP status (via GET monitoring), JSON, and RSS methods.
With the self-deployable cloud service, monitoring tasks can be synchronized to the server, allowing tasks to continue running on schedule even when the browser and computer are turned off.
Plugin Installation and Usage
The plugin can be used independently, though scheduled monitoring tasks wonāt execute when closed.
Installation
Open Edgeās extension page, enable āDeveloper modeā, click āLoad Unpackedā, and select directory A from the extracted files above.
If loaded successfully, youāll see the CheckChan interface. If it fails, itās usually because of an extra directory layer during extraction - try selecting the next level directory under directory A.
Usage
Adding Webpage Monitoring Points
After installing the plugin, open the webpage you want to monitor, right-click on the page, and youāll see the āLocate Monitoring Objectā option.
Click it to initialize the visual selector.
Move your mouse to see highlighted areas, and left-click on the text you want to monitor.
Note: The selected area must contain text, otherwise it will return empty. Many texts printed on images will also return empty.
Youāll be redirected to the add page.
You can modify the name, set monitoring interval, delay, and maximum retry times. Before saving, itās best to click the āTestā button next to the āCSS Selector Pathā field to test.
If it prompts āDetection content is emptyā, thereās a problem. Click again to observe:
If you notice the page closes before the favicon appears, increase the āDelay Readingā seconds; if it still returns empty after opening, the automatically generated selector path might be incorrect.
You can switch to the browserās automatically generated path using these steps:
ā Right-click on the text to be monitored, select āInspectā
ā” The developer tools will automatically open and select the corresponding line in the source code. Right-click on the highlighted line, select āCopyā ā āCopy selectorā
ā¢ Paste the copied path into the āCSS Selector Pathā field, then click the āTestā button again to test.
After testing successfully, click āSubmitā to save the monitoring point.
Pushing to WeChat and Other Devices via ServerChan
When adding or modifying monitoring points, enter the Sendkey to push messages to ServerChan.
How to Get SendKey
Log in to ServerChan Official Website, go to āKey&APIā, and click the āCopyā button.
How to Push to Other Channels
Log in to ServerChan Official Website, go to āChannel Configurationā, select the channel you want to push to, and follow the instructions on the page. Messages can be pushed to āPushDeerā and various group bots.
If the above channels donāt meet your needs, you can choose the āCustomā channel to send custom HTTP requests. This method is compatible with most notification interfaces.
Importing and Exporting All Monitoring Points
Click the up and down arrows in the top right of the monitoring point list to import and export all monitoring points.
Sharing and Importing Monitoring Points
Click the āClipboardā in the monitoring point list to export the current monitoring point settings to the clipboard.
The exported data looks like this:
checkchan://title=Server%E9%85%B1%E5%AE%98%E6%96%B9%E7%BD%91%E7%AB%99%E7%8A%B6%E6%80%81&url=https%3A%2F%2Fsct.ftqq.com&type=get&code=200&rss_field=title&delay=3&retry=10
After copying the above characters, paste them with Ctrl+V in the CheckChan browser plugin interface, and it will automatically recognize and jump to the āAdd Monitoring Pointā interface.
Monitoring Period Limits
Some tasks only need to be executed during specific time periods. To save resources, weāve added the āMonitoring Period Limitā feature. For example, if an animation updates every Friday at 10 AM, we can set the āMonitoring Period Limitā as follows:
This way, monitoring wonāt start during other time periods. For tasks with unpredictable time periods, use the default āEvery Minuteā.
Note that above the āMonitoring Period Limitā, thereās also the āMonitoring Interval Timeā.
If the āMonitoring Period Limitā is set to every minute, and the āMonitoring Interval Timeā is 60 minutes, monitoring will be attempted every minute, but once monitoring succeeds, the next monitoring will be 60 minutes later.
Also, since executing monitoring tasks itself takes time, when āMonitoring Interval Timeā is 1 minute, tasks usually run every other minute (i.e., every two minutes).
Selector Extended Syntax
Specifying Array Elements with @
The latest version supports a Selector extended syntax: Since itās implemented through document.querySelectorAll
, it returns all matching elements in an array. When these elements belong to the same parent node, we can use :nth-of-type(1)
or :nth-child(1)
to specify an item in the array.
However, if these elements donāt belong to the same parent node, the above methods wonāt work. Weāve added a selector@n syntax that allows us to specify an element from the array returned by the Selector. For example, .booklist .item@0
will return document.querySelectorAll(.booklist .item)[0]
.
The @ syntax can be used not only on DOM selectors but also to specify RSS monitoring results. By default, RSS will return the first article of the entire Feed. You can specify monitoring the second article (still counting from 0) by adding @1 after the Feed url.
Getting Element Attributes with %
The lowest level of the Selector returns an element, but sometimes we need to monitor a certain attribute value of this element, such as monitoring a linkās href
. To solve this, we extended the selector syntax to allow users to get element attributes using element%attribute. For example: article#post-180 > div > div > p > a%href
. When using %
and @
together, %
should immediately follow the element, like: article#post-180 > div > div > p > a%href@0
.
Log Viewing and Error Location
To better understand the execution of scheduled tasks, you can open the āDeveloper Toolsā (F12) and see the task-generated logs in the Console
tab.
Error messages will also be displayed here in red highlighted lines. Providing log error screenshots when encountering bugs can help us locate problems faster.
Updating Browser Plugin
After being listed in the store, it can be upgraded automatically. Before that, manual upgrade is needed. To upgrade, download the zip package, extract and overwrite the original files, then āreloadā in the browserās plugin management panel.
Image Installation and Usage
The new image has integrated cloud and remote desktop versions, allowing both to be used with a single installation.
- Cloud: Working with your self-deployed server, tasks can be synchronized to the cloud for execution, continuing to run even after closing the browser and computer.
- Remote Desktop: Chrome browser is packaged in Docker, accessible through VNC and web interface just like on a computer.
ā ļø Special note: Because the cloudās network and environment differ from local, thereās no guarantee that tasks running locally will succeed in the cloud. Some complex webpages and those with many dynamic effects may fail.
Installation
Setting up a self-hosted cloud version requires technical knowledge. Non-technical users are recommended to purchase our official cloud version (to be released after internal testing)
Requires Docker environment. If you donāt have a cloud server, check out Tencent Cloudās special price servers for 30~50 yuan first order.
One-Click Installation Command
Click here to enter the tool interface
Starting with Docker-compose
Log in to the server (assuming its IP is IPB), create a data
directory in the installation location and make it writable:
mkdir data && chmod 0755 data
Create a docker-compose.yml
file, adjust and paste the following content:
version: '3'
services:
chrome:
image: easychen/checkchan:latest
volumes:
- "./data:/checkchan/data"
environment:
- "CKC_PASSWD=<This is the remote desktop password, write one you want>"