YOURLS URL preview plugin with image caching powered by PhantomJS
Snapshot is a visual preview plugin for YOURLS personal URL shortener that uses the power of PhantomJS headless web browser via the Screen PHP library.
Updating to v3.0.0 + from the 2.x.x branch may cause some unexpected behavior. Flushing the cache may be necessary. Note, attempting to install this before the required U-SRV will result in failure.
- Just append your short URL with a '~', or choose a custom character from the admin interface to trigger a preview.
- Clear, detailed, personalized instructions included for setting up a subdomain service, and more.
- Highly configurable PhantomJS options dialogue, makes working with the application trivial.
- All options are easily configured in admin interface and stored in the databse, no file editing.
- Screen is included and ready to go, no setup required.
- Cache directory created and moved automatically, no manual file system manipulation required.
Because of the U-SRV method of image serving, it is a snap to integrate Snapshot into other plugins. Currently the Rscrub and Compliance plugins utilize this feature.
- If Phishtank-2.0 is installed, the previewed url will be (re)checked against the Phishtank API
- If there is a hit, a very visible warning is displayed
- Otherwise the Phistank logo and a friendly message is displayed below the image
- If Compliance is installed, a small link and message under the preview image is displayed for potentially bad links.
- Set cache expiration times for rendered preview images.
- Easily monitor cache disk usage via the admin interface.
- Manual cache flush with granular configuration options.
- Custom API for cache flushing.
- Personalized cron example included for use with API, keep the cahce in check with a configurable auto-flush.
- Self-cleaning: Cached images are deleted when a keyword is removed from database.
- Install and configure YOURLS 1.7.9 +
- Install and configure U-SRV v2.0.0 +
- Install phantomjs: details and prebuilt binaries can be found here
- NOTE: On Debian/Ubuntu there is a known bug with upstream packaging. Installing the prebuilt binary is therefore reccomended. Ex:
# cd /opt # wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 # tar xjf phantomjs-2.1.1-linux-x86_64.tar.bz2 # rm phantomjs-2.1.1-linux-x86_64.tar.bz2 # ln -s /opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs # phantomjs --version 2.1.1
- Install font requirements for phantomjs
$ sudo apt-get install fontconfig freetype*
- Grab Snapshot's latest release and extract the
snapshot
folder intoYOURLS/user/plugins/
- Permissions:
- Recursively make the folder
YOURLS/user/plugins/snapshot/assets/screen/jobs
writable by your webserver - Make the directory
YOURLS/user
writable by your webserver OR create aYOURLS/user/cache/snapshot/
directory that is writable by your webserver.
- Recursively make the folder
- Go to the YOURLS
Manage Plugins
page and enable this plugin. - Go to the
Snapshot
page and follow the instructions there.
- configure a cron job to keep up on cache maintanence
- If you installed via binary make sure totake note of the location of the phantomjs binary.
- Your webserver needs to have write permissions in order to make the cache directory. If you run into errors, try making the director and setting
chmod 0777
manually. - Please see the TODO list for future feature enhancements
- By default Snapshot will keep an error log in its own directory provided permissions are correctly set. This behavior can be disabled in the admin section.
OZH's original preview plugin was used as the original code base.
If you appreciate this code and want to show thanks, please feel free go to my website and drop a donation.
This plugin is offered "as is", and may or may not work for you. Give it a try, and have fun! If you run into any problems, please open up an issue on github, or simply submit a pull request with your fix.
Dogecoin: DARhgg9q3HAWYZuN95DKnFonADrSWUimy3
===========================
Copyright (C) 2016 Josh Panter
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.