Refactoring

- object model
- code is smaller, more readable.
- cache implemented
- README updated.
- Bridges added: Twitter, Google Search.
This commit is contained in:
Sebastien SAUVAGE 2013-08-07 22:33:21 +02:00
parent 18fecca175
commit 2797336bbe
6 changed files with 356 additions and 60 deletions

View file

@ -7,17 +7,52 @@ Supported sites/pages
===
* `rss-bridge-flickr-explore.php` : [Latest interesting images](http://www.flickr.com/explore) from Flickr.
* `rss-bridge-googlesearch.php` : Most recent results from Google Search. Parameters:
* q=keyword : Keyword search.
* `rss-bridge-twitter.php` : Twitter. Parameters:
* q=keyword : Keyword search.
* u=username : Get user timeline.
Output format
===
Output format can be used in any rss-bridge:
* `format=atom` (default): ATOM Feed.
* `format=json` : jSon
* `format=html` : html page
* `format=plaintext` : raw text (php object, as returned by print_r)
If format is not specified, ATOM format will be used.
Examples
===
* `rss-bridge-twitter.php?u=Dinnerbone` : Get Dinnerbone (Minecraft developer) timeline, in ATOM format.
* `rss-bridge-twitter.php?q=minecraft&format=html` : Everything Minecraft from Twitter, in html format.
* `rss-bridge-flickr-explore.php` : Latest interesting images from Flickr, in ATOM format.
Requirements
===
* php 5.3
* [PHP Simple HTML DOM Parser](http://simplehtmldom.sourceforge.net/)
Author
===
I'm sebsauvage, webmaster of [sebsauvage.net](http://sebsauvage.net), author of [Shaarli](http://sebsauvage.net/wiki/doku.php?id=php:shaarli) and [ZeroBin](http://sebsauvage.net/wiki/doku.php?id=php:zerobin).
Thanks to [Mitsukarenai](https://github.com/Mitsukarenai) for the inspiration.
Licence
===
Code is public domain.
Technical notes
===
* There is a cache so that source services won't ban you even if you hammer the rss-bridge with requests. Each bridge has a different duration for the cache. The `cache` subdirectory will be automatically created. You can purge it whenever you want.
* To implement a new rss-bridge, import `rss-bridge-lib.php` and subclass `RssBridgeAbstractClass`. Look at existing bridges for examples. For items you generate in `$this->items`, only `uri` and `title` are mandatory in each item. `timestamp` and `content` are optional but recommended. Any additional key will be ignored by ATOM feed (but outputed to jSon).
Rant
===
@ -29,4 +64,6 @@ You're not social when you hamper sharing by removing RSS. You're happy to have
We want to share with friends, using open protocols: RSS, XMPP, whatever. Because no one wants to have *your* service with *your* applications using *your* API forced-feeded to them. Friends must be free to choose whatever software and service they want.
We are rebuilding bridges your have wilfully destroyed.
Get your shit together: Put RSS back in.