phpbb2rss

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2025 License: GPL-3.0 Imports: 9 Imported by: 0

README

README

Overview

This application converts a PHPBB2 topic list page to a RSS feed. Ideally the "View posts from last 24 hours" page.

Installation

Prerequisites
  • Go (if building from source)
Optional
  • Apache or Nginx (for serving RSS files)
Build and Install
Install only (System level)

Grab the latest binary here: https://github.com/arran4/phpbb2-rss/releases/

Install and build as user (User)

Install go 1.23+

Run go install:

go install github.com/arran4/phpbb2-rss/cmd/phpbb2rss@latest

This installs to $HOME/go/bin (typically; check with go env).

Usage
CLI Mode

Generate RSS Feed:

phpbb2rss -output /var/www/localhost/htdocs/rss/phpbb2rss.xml  -url 'https://forums.$HOST.org/search.php?search_id=last'
Deployment
rc.d (Cron Job system level)

Add a cron job to run the script periodically:

  1. Edit the root crontab:
    sudo crontab -e
    
  2. Add the following line:
    */15 * * * * /usr/local/bin/phpbb2rss -output /var/www/localhost/htdocs/rss/phpbb2rss.xml  -url 'https://forums.$HOST.org/search.php?search_id=last'
    
rc.d (Cron Job user level)

Add a cron job to run the script periodically:

  1. Edit the user's crontab:
    crontab -e
    
  2. Add the following line:
    */15 * * * * ~/go/bin/phpbb2rss -output ~/public_html/rss/phpbb2rss.xml -url 'https://forums.$HOST.org/search.php?search_id=last'
    
systemd (as root)
  1. Create a systemd service file at /etc/systemd/system/phpbb2rss.service:
[Unit]
Description=phpbb2 to RSS Feed Creator

[Service]
Type=oneshot
ExecStart=/usr/bin/phpbb2rss -output /var/www/localhost/htdocs/rss/phpbb2rss.xml
User=apache
Group=apache
  1. Create a systemd timer file at /etc/systemd/system/everyhour@.timer:
[Unit]
Description=Monthly Timer for %i service

[Timer]
OnCalendar=*-*-* *:00:00
AccuracySec=1h
RandomizedDelaySec=1h
Persistent=true
Unit=%i.service

[Install]
WantedBy=default.target
  1. Reload systemd and start the service:
    sudo systemctl daemon-reload
    sudo systemctl enable --now everyhour@phpbb2rss.timer
    
systemd (as user)
  1. Create a systemd service file at $HOME/.config/systemd/user/phpbb2rss.service:
[Unit]
Description=phpbb2 to RSS Feed Creator

[Service]
Type=oneshot
ExecStart=%h/go/bin/phpbb2rss -output %h/public_html/rss/phpbb2rss.xml -url 'https://forums.$HOST.org/search.php?search_id=last'
  1. Create a systemd timer file at $HOME/.config/systemd/user/everyhour@.timer:
[Unit]
Description=Monthly Timer for %i service

[Timer]
OnCalendar=*-*-* *:00:00
AccuracySec=1h
RandomizedDelaySec=1h
Persistent=true
Unit=%i.service

[Install]
WantedBy=default.target
  1. Reload systemd and start the service:
    systemctl --user daemon-reload && systemctl --user enable --now everyhour@phpbb2rss.timer
    
Apache VirtualHost Configuration
User

Refer to documentation for setting up public_html directories

Enjoy

http://localhost/~$USERNAME/rss/phpbb2rss.xml

System

Add the following configuration to your Apache setup (e.g., /etc/httpd/conf.d/rss.conf):

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/localhost/htdocs/rss
    <Directory "/var/www/localhost/htdocs/rss">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>
Nginx Configuration
User

Refer to documentation for setting up public_html directories

System

Add this to your Nginx server block:

server {
    listen 80;
    server_name example.com;

    location /rss/ {
        root /var/www/localhost/htdocs;
        autoindex on;
    }
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FetchAndGenerateRSS

func FetchAndGenerateRSS(forumURL string) (string, error)

Types

type Channel

type Channel struct {
	Title       string `xml:"title"`
	Link        string `xml:"link"`
	Description string `xml:"description"`
	Items       []Item `xml:"item"`
}

type Item

type Item struct {
	Title       string `xml:"title"`
	Link        string `xml:"link"`
	Description string `xml:"description"`
	PubDate     string `xml:"pubDate"`
	GUID        string `xml:"guid"`
	Author      string `xml:"author"`
}

type RSS

type RSS struct {
	XMLName xml.Name `xml:"rss"`
	Version string   `xml:"version,attr"`
	Channel Channel  `xml:"channel"`
}

Directories

Path Synopsis
cmd
phpbb2rss command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL