2.5 KiB
Pastebinner
Check out the examples folder for some examples. I will add more soon.
Configuration
Docker
- Build the image:
docker build -t pastebinner .
- Run the image:
docker run -it --env-file .env --network="host" pastebinner
Console
The console will launch you into a running pry session where you will have access to an elasticsearch object and a pastebinner object. From there you can poke around and investigate further how the program works.
I am working on setting it up with docker-compose to connect elasticsearch and redis in docker containers. Set the following environment variables in a file named .env and source them:
pastebin_api_key
pastebin_username
pastebin_password
optional environment variables if planning on using elasticsearch and redis
elasticsearch_url
redis_url
If you want to scrape pastes, you can view a json response of the latest pastes by using the -s
or --scrape_public
options.
Creating pastes is built in, check lib/api_client
Commandline
The command line app can be used as follows:
Usage: pastebinner [options]
-h, --help Show this help messae
-v, --verbose Verbose http output (WIP)
-s, --scrape_public Scrape public pastes
-r, --raw Raw paste. Requires --key passed with a valid key
-g, --get_keys Get unique paste keys from public pastes
-k, --key= Unique paste key
-d, --download Download all public pastes to data directory
-j, --json Download all public pastes as a json into data directory
-t, --trending Trending pastes
Downloading pastes
Create a directory in the git repo named data, this is where the raw pastes will be stored. Here is an example of what it looks like:
Raw pastes to files
pastebinner --download
Downloading paste data into the data directory...
Complete.
JSON file with paste_metadata and paste_text
pastebinner --json
Downloading paste data as a json into the data directory...
Complete.
The data directory will then be populated with pastebin raw paste files with the following naming scheme:
pastebin_paste_key_agiArDuG.raw
or pastebin_paste_key_agiArDuG.json
To Add:
- fulltext search of raw pastes via elastic search, mysql, postgres, sqlite, or some other method
- adding exceptions
- adding configuration file support
- adding rspec tests