/ptpfl

A customized for UltraSeedBox node.js script that automates the downloading of p*p freeleech torrents.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

THIS MAY GET YOUR PTP ACCOUNT BANNED BE FOREWARNED

PassThePopcorn Freeleech Automator

A node.js script that automates the downloading of PassThePopcorn freeleech torrents.

Customized for USB. Run with Custom_Run_Script.

Feature Requests

Feature requests welcome. Feel free to create a new issue explaining the feature you'd like to see implemented into the package.

Usage

Prerequisites

Install Node and NPM (root not required).

Install

npm install within the project directory.

Setup

Copy example.config.json to config.json and fill in your apiUser and apiKey credentials from your user profile.

Add a downloadPath to config.json to have the torrents added to your torrent client's watch directory.

Run

npm start to run manually.

npm run schedule to run at an interval of x minutes as defined by the interval setting in config.json. This is helpful for running in screen or tmux.

npm run fill-cache to fill the freeleech cache with currently available freeleech torrents. This is helpful if you'd like to start downloading future freeleech without flooding your torrent client with past freeleech. This caches all torrents; including those not filtered by your config.

Configuration

Configuration options with defaults shown:

{
  "apiUser": "", // apiUser credential found in PTP profile security tab.
  "apiKey": "", // apiKey credential found in PTP profile security tab.
  "interval": -1 // Interval, in minutes, that you'd like to run the script at. 
  "downloadPath": -1, // Path to download .torrent files to. Optional.
  "discordWebhookUrl": -1, // Discord webhook URI. Optional.
  "minseeders": -1, // Minimum amount of seeders. Set to -1 for unlimited.
  "maxseeders": -1, // Maximum amount of seeders. Set to -1 for unlimited.
  "minleechers": -1, // Minimum amount of leechers. Set to -1 for unlimited.
  "maxleechers": -1, // Maximum amount of leechers. Set to -1 for unlimited.
  "minsize": -1, // Minimum size in megabytes. Set to -1 for unlimited.
  "maxsize": -1, // Maximum size in megabytes. Set to -1 for unlimited.
  "maxAge": -1, // Maximum time in minutes since torrent was uploaded. See below note.
  "resolution": -1, // Filter by resolution. 
  "codec": -1, // Filter by codex. 
  "container": -1, // Filter by container. 
  "source": -1, // Filter by source. 
  "relaseGroup": -1 // Filter by release group.
}

maxAge

Set maxAge to filter freeleech torrents by upload date, in minutes. Be aware that some torrents are given freeleech status well after initial upload, & in this case those torrents may not be filtered if this config is set.

Discord notifications

Create a Webhook URL for a Discord channel and place it as discordWebhookUrl in your config file to be notified of grabbed torrents.

Filter Options

These options can be specified in a comma separated list within a string. For example: "source": "cam,ts,dvd-screener" or "source": "cam".

Resolution Codec Container Source
anysd XviD AVI CAM
anyhd DivX MPG TS
anyhdp H.264 MKV R5
anyuhd x264 MP$ DVD-Screener
ntsc H.265 VOV IFO VHS
pal x265 ISO WEB
480p DVD5 m2ts DVD
576p DVD9 TV
720p BD25 HDTV
1080i BD50 HD-DVD
1080p BD66 Blu-ray
2160p BD100

Release Group

Release groups can be specified in a comma separated list within a string.

E.g., "releaseGroup": "ntg,epsilon"