Skip to content

skeetzo/onlysnarf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OnlySnarf

Shnarf

Please refer to the Menu for help with the available arguments and config settings.

Description

OnlySnarf is a python based automation tool to assist with uploading content to OnlyFans by interacting with the site via web scraping. It does not interact with the API whatsoever. OnlySnarf carries no weapons, but it has been known to use its tail, teeth and claws when improperly configured.

Here are some fuzzy debugging previews of how it looks when everything works:

Installation

There are two different installation options (that I know of):

  1. via pip for the latest official package: python3 -m pip install onlysnarf
  2. or clone the repo & setup a virtual environment to install locally like in the bash script at bin/virtualenv.sh

Here is an output of the command: snarf -h

Command example: snarf -text "suck my giant balls" /path/to/imageOfBalls.jpeg

Config

Example config files are provided. There are two main config files that should be provided to affect runtime behavior as well as one optional method to help distinguish between user logins for multiple accounts.

  1. the config for the general app's behavior: $HOME/.onlysnarf/config.conf
  2. one config for each user containing their credentials: $HOME/.onlysnarf/users/$username.conf
  3. (optional) one config containing the default user credentials to use: $HOME/.onlysnarf/users/default.conf

User config example: $HOME/.onlysnarf/users/alexdicksdown.conf

Note for Windows: the user's $HOME path works out to C:\Users\YOUR_USERNAME so the base directory for config files and such can instead be found at C:\Users\YOUR_USERNAME\.onlysnarf

No, the user credentials are not handled in the safest manner because they are very clearly stored in plain text with no encryption. Yes, a better way can be figured out. Do I think a better way is necessary for this project? No. So please be careful with your own credentials.

Dependencies

Selenium's webdriver manager should install everything it needs automatically. If left unspecified the default browser argument is "auto" which will cylce throuch each web driver available and attempt to spawn a working browser. If you are using a Raspberry Pi 4, be sure to run sudo apt-get install chromium-chromedriver on your device to be able to launch chrome.

Platforms

Runs successfully on:

  • Linux Ubuntu
  • Windows 11

Runs sucessfully on browsers:

  • Chrome
  • Firefox

Runs successfully on devices:

  • Raspberry Pi 4

Tests

The test environment uses the config file found at: OnlySnarf/conf/test-config.conf

Basic unittesting:

  • python -m unittest tests/snarf/test_discount.py
  • python -m unittest tests/snarf/test_post.py
  • python -m unittest tests/snarf/test_message.py
  • python -m unittest tests/snarf/test_users.py

Pytests available under /tests:

  • pytest tests/selenium
  • pytest tests/snarf

Updates

7/5/2023 : clarifications to readme and menu text... 4/18/2023 : To further reduce repo size, preview gifs have been relocated to IPFS.


Feel free to make use of my referral code ;)