SpotWeb Howto:Spotweb is een webbased versie van Spotnet. Deze handleiding komt grotendeels van
Nakebod@tweakers. Waarvoor we hem zeer erkentelijk zijn. Ik heb het vereenvoudigd en de foutenmeldingen waar ik tegen aanliep erin verwerkt. Ik heb er slechts een beetje verstand van, heb je uitgebreide uitleg/vragen over php/sql ect zal ik niet altijd kunnen helpen.
Ik maak gebruik van mysql, nzbget en ik gebruik geen GIT, dat vond ik het makkelijkste. Er zijn allerlei variaties mogelijk, spotweb is nog volop in ontwikkeling. Als je daar aan mee wilt doen dan kun je eens kijken op Github.com / spotweb en Tweakers.net / SpotWeb - Webbased Spotnet.
Je moet de mogelijkheid hebben om Optware te installeren op je Synology, anders gaat het onderstaande niet lukken. Op de site van
Wizjos staat een uitgebreide how-to.
Installeer php-pear en de benodigde modules.ipkg install php-pear
pear install --alldeps Net_NNTP
DSM ConfiguratieLogin op de DSM. Control Panel -> Web Services -> PHP Settings
Zet een vinkje voor 'Customize PHP open_basedir' en voeg het volgende toe aan het eind van de regel :/opt/share/pear
Klik daarna op Select PHP extension en zorg ervoor dat minimaal de volgende modules aangevinkt zijn: bcmath, mysql, zlib.
Controleer ook of onder het tabblad Web Applications de webserver en MySQL server draaien.
SpotWeb downloadenDe simpelste methode is het gebruik maken van de zip download.
Download het archiefbestand, en pak deze uit in een map van je webserver (/web/spotweb/) , en start met de configuratie.
SpotWeb configuratieMySQL ConfiguratieInstalleer op je Diskstation phpMyAdmin, is een officieel pakket en beschikbaar via de website van Synology. Je krijgt dan een icoontje in DSM erbij.
Open phpMyAdmin, klik op het tabblad "rechten" daarna "Voeg een nieuwe gebruiker toe"
Invullen:
Gebruikersnaam: "spotweb"
Machine: "localhost"
Wachtwoord: “1234” (dat moet je uiteraard zelf weten, ik gebruik dit als voorbeeld)
Kies dan voor: "Maak een database met dezelfde naam en geef alle rechten hierop"
Klik op "selecteer alles" en als laatste op "start" nu is je database en user aangemaakt.
(Met dank aan
JSmith19 voor dit stukje !)
settings.php aanpassenIn het bestand settings.php staan de instellingen van SpotWeb. Er zijn een aantal dingen die je in settings.php moet aanpassen, en een aantal optionele instellingen.
NNTP server instellingenAllereerst natuurlijk je usenet server, deze staat helemaal bovenaan.
$settings['nntp_nzb']['host'] = 'serveradres'; # <== Geef hier je nntp server in
$settings['nntp_nzb']['user'] = 'gebruikersnaam'; # <== Geef hier je username in
$settings['nntp_nzb']['pass'] = 'wachtwoord'; # <== Geef hier je password in
$settings['nntp_nzb']['enc'] = false; # <== false|'tls'|'ssl', defaults to false.
$settings['nntp_nzb']['port'] = 119; # <== set to 563 in case of encryption
Database engine
We maken gebruik van MySQL, dan moet je de engine 'sqlite' vervangen door 'mysql', en de daarop volgende regel kan je een comment van maken.
$settings['db']['engine'] = 'mysql'; # <== keuze uit sqlite3 en mysql
//$settings['db']['path'] = './nntpdb.sqlite3'; # <== als je geen SQLite3 gebruikt, kan dit weg
Uiteraard ook de database gegevens zelf invullen. Als je letterlijk bovenstaande MySQL stappen hebt gebruikt, ziet dat er als volgt uit:
$settings['db']['engine'] = 'mysql';
$settings['db']['host'] = 'localhost';
$settings['db']['dbname'] = 'spotweb';
$settings['db']['user'] = 'spotweb';
$settings['db']['pass'] = '1234';
Extra knopjes
Optioneel nog in te stellen of we een update knop willen zien en een NZB knop.
$settings['show_updatebutton'] = true;
$settings['show_nzbbutton'] = true;
PEAR
Om PEAR werkend te krijgen in SpotWeb dien je in de SpotWeb directory een nieuw bestand te maken met de naam 'ownsettings.php'.
De minimale inhoud staat hieronder.
<?php
ini_set("include_path", "/opt/share/pear");
?>
'ownsettings.php' is wel makkelijk om te hebben, alles wat daarin staat overruled de instellingen in settings.php. Dus iedere keer als je een nieuwe versie zou ophalen op Github, overschrijf je je settings.php. Je kunt dus je variable instellingen copieren uit settings.php en plakken in ownsettings.php. Maar zorg eerst dat je het “gewoon” hebt werken en ga daarna experimenteren.
Testen:
Om te kijken of alles gereed is voor gebruik open via je browser //diskstation/spotweb/testinstall.php.
Als er iets niet op OK staat zal Spotnet niet werken. Los dan eerst de fout(en) op.
PHP settings OK ?
PHP version PHP 5.3 or later is recommended
timezone settings Please specify date.timezone in your PHP.ini
Open base dir OK
PHP safe mode OK
Memory limit OK
PHP extension OK ?
SQLite OK
MySQL OK
bcmath OK
ctype OK
xml OK
zlib OK
Include files OK ?
Settings file OK
PEAR OK
PEAR Net/NNTP OK
NNTP server OK
Path PEAR found? Net/NNTP found?
.
/opt/share/pear
Als alles OK is, en settings.php goed hebt ingevuld, kunnen we beginnen met het binnenhalen van de spots.
Het beste kan je de eerste paar keer via de commandline starten, totdat je database geheel gevuld is.
Wel eerst naar de spotweb dir gaan:
php retrieve.php
Het kan ook zijn dat je het volgende uit moet voeren:
/usr/bin/php retrieve.php
Je zou nu iets moeten zien zoals:
DiskStation> php retrieve.php
Appr. Message count: 204493
Last message number: 208601
Current message: 4108
Retrieving: 4108 till 14108
Retrieving: 14109 till 24109
Retrieving: 24110 till 34110
Je kunt de volgende foutmelding krijgen
PHP Fatal error: Maximum execution time of 30 seconds exceeded in /volume1/web/spotweb/SpotParser.php on line 116
Dan moet je retrieve.php even bewerken, zoek naar set_time_limit. Standaard is dit 30, verhoog naar 60 seconden.
Nu kan je retrieve.php weer uitvoeren, en zal hij verdergaan waar hij gebleven was.
Zodra je initiele spots in de database staan kan je retrieve.php via de browser laten updaten.
Heb je een newsserver met een behoorlijke retentie, dan kan het wel even duren voordat die alles opgehaald heeft (bij mij een uur). Je database wordt dan ook behoorlijk groot en de webinterface is dan ook niet echt snel te noemen. Ik ben nog aan het kijken hoe je de database nog wat kunt trimmen, bv vanaf een bepaalde datum. Bij mij gaat die terug tot eind 2009 en is inmiddels 130 MB groot.
NzbgetZoals het nu werkt bij klikken op de nzb link, wordt deze gedownload naar je PC/whatever. Ik heb zelf nzbget op mijn Synologie draaien. Ik vind het handiger als die direct de nzb in mijn watchdir zet. Daarvoor moet je volgende stukje code in je “index.php” vervangen:
if ($nzb !== false) {
$myFile = "/path-naar-je-nzb-watchfolder/" .$xmlar['title'] . ".nzb";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = gzinflate($spotParser->unspecialZipStr($nzb));
fwrite($fh, $stringData);
fclose($fh);
} else {
echo "Unable to get NZB file: " . $nzb_spotnntp->getError();
} # else
} # if
"/path-naar-je-nzb-watchfolder/" zal er dan uitmoeten zien als bv. "/volume1/public/nzbget/nzb/" oid.
Het volgende moet je dan vervangen, je kunt het ook natuurlijk commenten:
// if ($nzb !== false) {
// Header("Content-Type: application/x-nzb");
// Header("Content-Disposition: attachment; filename="" . $xmlar['title'] . ".nzb"");
// echo gzinflate($spotParser->unspecialZipStr($nzb));
// } else {
// echo "Unable to get NZB file: " . $nzb_spotnntp->getError();
// } # else
// } # if
//
(Met dank aan
Bakman@tweakers voor dit stukje code)
Een aantal veel voorkomende fouten zijn "open_basedir". Dit zijn de locaties waar php rechten heeft om dingen uit te voeren.
Die kun je leeg maken in php.ini, maar dan heeft php wel overal rechten. Ik heb hem op het moment "leeg" omdat ik te lui was om alle dirs toe te voegen, waar php iets mag doen
Ook zit er nu geen beveiliging op de map waar Spotweb instaat, dat is op te lossen door gebruik te maken van een
.htaccess bestandje.
Spotweb is ook goed aan de gang te krijgen met Sabnzbd, maar die gebruik ik niet en heb daar ook geen aandacht aan besteed. Op tweakers staat daar wel veel over geschreven en de comments in settings.php lijken ook wel vrij duidelijk.
Succes !
Bij vragen/opmerkingen/aanvullingen ect. graag een nieuw topic openen, dan kan dit als sticky bovenaan blijven staan.
Credits voor: Nakebod, JSmith19 en Bakman