Giter VIP home page Giter VIP logo

kajvdh / rss-synd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from eggtcl/rss-synd

0.0 2.0 0.0 126 KB

Highly configurable asynchronous RSS & Atom feed reader for Eggdrops written in TCL. Supports multiple feeds, gzip compressed feeds, automatically messaging channels with updates at set intervals, custom private/channel triggers and more.

License: BSD 3-Clause "New" or "Revised" License

Tcl 100.00%

rss-synd's Introduction

################################################################################
  README
################################################################################

================================================================================
INSTALL
================================================================================

  1. Copy rss-synd.tcl and rss-synd-settings.tcl to your scripts directory.
  2. Add "source scripts/rss-synd.tcl" to your eggdrop.conf file.

Dependencies (for additional features)

 This script will run perfectly fine without any of these dependencies, but
  if you want any of these features you'll need to download and install the
  respective package(s).

* HTTP Authorisation
** Requires: base64 package from tcllib to be installed.
** URL: http://tcllib.sourceforge.net/
** FreeBSD: cd /usr/ports/devel/tcllib/ && make install clean
** RedHat: yum install tcllib

* HTTPS
** Requires: TLS package to be installed.
** URL: http://www.sensus.org/tcl/
** FreeBSD: cd /usr/ports/devel/tcltls/ && make install clean

* Gzip Decompression:
** Requires: Trf package to be installed.
** URL: http://tcltrf.sourceforge.net/
** FreeBSD: cd /usr/ports/devel/tcl-trf/ && make install clean
** RedHat: yum install tcl-trf

================================================================================
SETTINGS
================================================================================

 Follow the details below. It is possible to define values in either the
  default variable or within the individual rss feed variables. You can define
  values in both places, but each feeds individual settings will overwrite the
  default ones.

Required values:

url             The URL of the RSS/ATOM feed.
                 Example: http://www.example.tld/feed.xml
                          https://www.example.tld/feed.xml
                          http://username:password@www.example.tld/feed.xml

channels        List of channels the feed (and trigger) are to be active in.
                  (Use space to separate multiple channels)

database        Full (or relative from your eggdrops path) path to where you
                  want to store the database file.
                 Example: ./scripts/feedname.db

output           The format you would like the RSS to be outputted to you
                  channel in.

max-depth        Maximum amount of times the script should follow Location:
                  headers. Keep this relatively low.
                 Default: 5

timeout          Timeout of connections (in milliseconds).
                 Default: 60000

user-agent       User agent to send in the http request.

announce-type    How you want the announce updates to be sent to your
                  channels.
                  Options:
                   0 = Message Channel
                   1 = Notice Channel
                 Default: 0

announce-output  Maximum articles to output to channel on announce. Setting this
                  to 0 will silence the automatic output.
                 Default: 3

trigger-type     How you want the trigger replies to be sent when triggered
                  both in channel and via private message.
                  The format is: <channel>:<privmsg>
                  Options:
                   0 = Message Channel
                   1 = Notice Channel
                   2 = Message User
                   3 = Notice User
                 Default: 0:2

trigger-output   Maximum articles to output when triggered. Setting this to 0 will
                  silence the trigger output.
                 Default: 3

update-interval  How often (in minutes) you want the feed to be checked. Try
                  and keep this number sensible, something above 15 minutes.
                  Some websites will ban you for hammering their feeds.
                 Default: 30

Optional values:

trigger          Public trigger to list feeds. (if you only want to define it
                  once in default use @@feedid@@, this will be replaced by
                  each individual feeds id)

evaluate-tcl     Evaluate the output before sending it to channel.
                 Default: 0 (Off)

enable-gzip      Enable gzip decompression for this feed.
                 Default: 0 (Off)

remove-empty     Remove empty cookies from the output.
                 Default: 1 (On)

output-order     The order you want the articles to be announced in channel.
                 Options:
                  0 = Ascending (Oldest -> Newest)
                  1 = Descending (Newest -> Oldest)

charset          This is the charset you want the feed to be outputted using.
                  The default charset is what your local system charset is set
                  to use. In most cases, if you're having problems with output
                  just use utf-8.
                 Example: utf-8
                          cp1251
                          iso8859-1
feedencoding 	This is the charset the feed is in. (look in the sourcecode 
                it is usualy mentioned in the <?xml> header. Please note that
				Tcl uses other encoding names, esp. the Windows-xxx encodings.
				In Tcl they are named cpxxx.

Cookies:

  Output works on a cookie system, in this case its dynamic so it depends on
   what data the feed contains as to what you can output.

  As of version 0.3 you are able to reference any tag within each article, or
   if you really want the whole feed. The format is @@<tag>!<subtag>!...@@,
   @@item@@ and @@entry@@ cookies are 'shortcuts' and will always point to the
   current article. If you wish to output an attribute of a tag you can do that
   by using the attribute name with an = in front of it
   (eg: @@entry!link!=href@@). This would get the 'href' attribute from the
   <link> tag. Refer to rss-synd.tcl for more examples.

================================================================================
FAQ
================================================================================

Q: The output to my channel has a lot of random \'s everywhere.
A: set the 'eval-tcl' option to 0 (off).

Q: My feeds announce all the articles in the feed, not just the news ones.
A: You've either used the same database file for two feeds, or there isnt one
   set that's working. Make sure the path where your putting your files is
   writable!

Q: The output to my channel has the annoying cookies still in it.
A: set the 'remove-cookies' option to 1 (on)

Q: I cant see what cookies are wrong! what can I do?
A: set the 'remove-cookies' option to 0 (off)

Q: The feed wont work properly and I'm not sure why!
A: Make sure the feed is valid check it with http://feedvalidator.org/. If the
   feed has errors, it probably wont work.

EOF

rss-synd's People

Contributors

dasbrain avatar hm2k avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.