Skip to content

A tool to find and save recent writeups from specified URLs, with optional Telegram notifications.

License

Notifications You must be signed in to change notification settings

blackvoidx/writeup-finder

Repository files navigation

Writeup Finder

Go Version GitHub Issues GitHub Stars GitHub License

Join our Writeup Hacking supergroup for curated hacking writeups and resources!

πŸ“œπŸ” https://t.me/writeup_hacking

Writeup Finder is a tool designed to automatically find and save recent writeups from specified URLs. It supports saving the found writeups in a PostgreSQL database, and sending them directly to a Telegram.

Writeup-finder is a tool to search for writeups and manage article data, including sending notifications.

Usage:
  writeup-finder [flags]
  writeup-finder [command]

Available Commands:
  completion  Generate autocompletion script
  help        Help about any command

Flags:
      --database       Save new articles in the database
      --help           Show help
      --proxy string   Proxy URL to use for sending Telegram messages
      --telegram       Send new articles to Telegram

Use "writeup-finder [command] --help" for more information about a command.

Features

  • Fetch recent writeups from multiple URLs.
  • Save writeups to a PostgreSQL database.
  • Optionally send notifications of new writeups to a Telegram.
  • It filters topics based on the title and sends them to the corresponding topic in the Telegram group.
── .env 
β”œβ”€β”€ .env.example 
β”œβ”€β”€ .github/ 
β”‚   └── workflows/ 
β”‚       └── writeup-finder-runner.yml 
β”œβ”€β”€ .gitignore 
β”œβ”€β”€ CHANGELOG.md 
β”œβ”€β”€ README.md 
β”œβ”€β”€ command/ 
β”‚   β”œβ”€β”€ action.go 
β”‚   β”œβ”€β”€ command.go 
β”‚   β”œβ”€β”€ completion.go 
β”‚   └── flags.go 
β”œβ”€β”€ data/ 
β”‚   β”œβ”€β”€ Youtube_channel.md 
β”‚   β”œβ”€β”€ keywords.json 
β”‚   └── url.txt 
β”œβ”€β”€ db/ 
β”‚   └── db.go 
β”œβ”€β”€ global/ 
β”‚   └── global.go 
β”œβ”€β”€ go.mod 
β”œβ”€β”€ go.sum 
β”œβ”€β”€ handler/ 
β”‚   β”œβ”€β”€ handler.go 
β”‚   β”œβ”€β”€ medium.go 
β”‚   β”œβ”€β”€ utils.go 
β”‚   └── youtube.go 
β”œβ”€β”€ main.go 
β”œβ”€β”€ run_writeUp-finder.sh 
β”œβ”€β”€ telegram/ 
β”‚   β”œβ”€β”€ message.go 
β”‚   β”œβ”€β”€ proxy.go 
β”‚   β”œβ”€β”€ request.go 
β”‚   └── telegram.go 
β”œβ”€β”€ utils/ 
β”‚   β”œβ”€β”€ env.go 
β”‚   β”œβ”€β”€ filters.go 
β”‚   β”œβ”€β”€ http.go 
β”‚   β”œβ”€β”€ rss.go 
β”‚   └── utils.go 
└── writeup-finder 

Requirements

  • Go 1.16+
  • PostgreSQL

Setup

  1. Clone the repository.
  2. Install dependencies using go mod tidy.
  3. Create a .env file with the .env.example file.
  4. Update the url.txt file with the URLs you want to monitor.
  5. Run the tool with the desired flags.
  6. Run go build -o writeup-finder

Usage

Command Description
writeup-finder --database Save new articles to PostgreSQL database
writeup-finder [--database] --telegram Send new writeups to Telegram
writeup-finder [--database] --telegram --proxy=PROTOCOL://HOSTNAME:PORT Send new writeups to Telegram with proxy support

Flags:

  • --database Save new articles in the database
  • --help Show help
  • --proxy string Proxy URL to use for sending Telegram messages
  • --telegram Send new articles to Telegram

Use writeup-finder [command] --help for more information about a command.

You can use CRON to run script every *hours, *days, or etc.

Example for run script every 3 hour

More read: How to Automate Tasks with cron Jobs in Linux

    0 */3 * * * cd /path/to/your/script && /usr/local/go/bin/writeup-finder -d -t