Skip to content

pzs-ng | Cheatsheet


Installation

git clone https://github.com/pzs-ng/pzs-ng /opt/pzs-ng
cd /opt/pzs-ng
./configure
make -j$(nproc)
make install
cd /opt/pzs-ng/sitebot
mkdir /home/wuseman/eggdrop/pzs-ng/
cp -R ngBot.* plugins themes modules /home/wuseman/eggdrop/pzs-ng/
echo "source scripts/ngBot.tcl" >> /home/wuseman/eggdrop/eggdrop.conf
chown -R wuseman:wuseman /home/wuseman/eggdrop/pzs-ng/

Autio Gener4e

/opt/pzs-ng/scripts/audio-genre/audio-genre-create.sh
cat <<! >> /opt/pzs-ng/zipscript/conf/zsconfig.h

#define enable_audio_script             TRUE
#define audio_script                    "/bin/ng-chown"
#define audio_script_cookies            "0 0 0 1 0 1 - \"%w\" \"%?\""
#define allow_gid_change_in_ng_chown    TRUE
#define allow_dir_chown_in_ng_chown     TRUE
!
chmod +s /glftpd/bin/ng-chown

Cleaner script

cp /opt/pzs-ng/scripts/cleaner/cleaner.sh /glftpd/bin

psxc-trailer

cp /opt/pzs-ng/scripts/psxc-trailer/psxc-trailer.sh

Fix for psxc-imdb-find (2023-05-22)

sed -i 's/\/find/\/find\//g' /glftpd/bin/psxc-imdb-find.sh

Fpsxc-imdb-find

cd /opt/pzs-ng/scripts/psxc-imdb/ cp /opt/pzs-ng/scripts/psxc-imdb/main/{.tcl,.zpt} /home/wuseman/eggdrop/pzs-ng/plugins/

Install pzs-ng for imdb

/opt/pzs-ng/scripts/psxc-imdb/installer.sh
cp /opt/pzs-ng/scripts/psxc-imdb/extras/psxc-imdb-* /glftpd/bin/
sh -x /opt/pzs-ng/scripts/psxc-imdb/extras/psxc-imdb-sanity.sh
echo "source scripts/psxc-imdb.tcl" >> /home/wuseman/eggdrop/eggdrop.conf
cp /opt/pzs-ng/scripts/psxc-imdb/main/*.sh /glftpd/bin/
cp -v /opt/pzs-ng/scripts/psxc-imdb/extras/psxc-imdb-* /glftpd/bin/
cp -v /opt/pzs-ng/scripts/psxc-imdb/main/psxc-imdb.conf /glftpd/etc/
touch /glftpd/ftp-data/logs/psxc-imdb.log
chmod 755 /glftpd/ftp-data/logs/psxc-imdb.log

A simple and basic script to trim logs. Should be run in crontab.

cp /opt/pzs-ng/scripts/logtrimmer/logtrimmer.sh /glftpd/bin
chmod +x /glftpd/bin/logtrimmer.sh

NfoExtract

cp /opt/pzs-ng/scripts/nfoextract/* /glftpd/bin/

Libcopy

sh -x /opt/pzs-ng/scripts/libcopy/libcopy.sh

Logtrimmer

cp /opt/pzs-ng/scripts/logtrimmer/logtrimmer.sh /glftpd/bin/

Configure pzs-ng

/opt/pzs-ng/scripts/audio-genre/audio-genre-create.sh

pzs-ng allows you to change the uid/gid of files/dirs with a bin called ng-chown. By default this binary is disabled in all aspects. You may use it to change the groupname in a dirlisting to match the genre of an audio-release, by adding the following in your zsconfig.h:

#define enable_audio_script             TRUE
#define audio_script                    "/bin/ng-chown"
#define audio_script_cookies            "0 0 0 1 0 1 - \"%w\" \"%?\""
#define allow_gid_change_in_ng_chown    TRUE
#define allow_dir_chown_in_ng_chown     TRUE

Please copy/paste the exact lines above. This will enable the audio-script, and make ng-chown able to modify the group id of the releasedir.

You must also chmod +s ng-chown:

chmod +s /glftpd/bin/ng-chown

Last, you'll have to add the genres into glftpd's groupfile. This is what the script named audio-genre-create.sh does. Just run it and it will modify the group file (after creating a backup).

Configure zsconfig.h

Example config

```bash
cat << "EOF" >> /opt/pzs-ng/zipscript/conf/zsconfig.h
/* zsconfig.h - ZipScript-C config file
 *
 * This file only contains overrides of the defaults. If you need to edit/change
 * other options, please copy the option from README.ZSCONFIG and place it in
 * here.
 * The complete list of options availible is found in README.ZSCONFIG.
 *
 * Please do not change settings you do not understand!
 *
 * The hash char ``#'' does not signify comments! DO NOT REMOVE!
 */


/* DO NOT USE WILDCARDS HERE! */
#define sitepath_dir                 "/site/"
#define group_dirs                   "/site/groups/"
#define zip_dirs                     "/site/archive/software/ /site/archive/ebooks/ /site/archive/tutorial"
#define sfv_dirs                     "/site/archive/dvdr/ /site/archive/ebooks/ /site/archive/games/ /site/archive/mp3/ /site/archive/mvids/ /site/archive/software/ /site/archive/tutorial/ /site/archive/tv/ /site/archive/tv1080p/ /site/archive/x2641080p/ /site/archive/x264720p/ /site/archive/x264sd/ /site/archive/xxxsd/"
#define nocheck_dirs                 "/site/private/ /site/database/ /site/requests/ /site/android/ /site/scene/ /site/speedtest/"
#define noforce_sfv_first_dirs       ""
#define audio_nocheck_dirs           "/site/private/ /site/database/ /site/requests/ /site/android/"
#define allowed_types_exemption_dirs "/site/archive/mvids/ /site/requests/ /site/android/ /site/private/ /site/groups/ /site/speedtests/"
#define check_for_missing_nfo_dirs   "/site/archive/dvdr/ /site/archive/ebooks/ /site/archive/games/ /site/archive/mp3/ /site/archive/mvids/ /site/archive/software/ /site/archive/tutorial/ /site/archive/tv/ /site/archive/tv1080p/ /site/archive/x2641080p/ /site/archive/x264720p/ /site/archive/x264sd/ /site/archive/xxxsd/"
#define cleanupdirs                  ""
#define cleanupdirs_dated            "/site/incoming/0day/%m%d/ /site/incoming/mp3/%m%d/"
#define check_for_missing_sample_dirs "/site/archive/dvdr/ /site/archive/x264sd/ /site/archive/tv/ /site/archive/tv1080p/ /site/archive/x2641080p/ /site/archive/x264720p/ /site/requests/"
#define create_missing_sample_link   TRUE
#define short_sitename               "OK"
#define debug_mode                   FALSE
#define debug_altlog                 TRUE
#define status_bar_type              BAR_DIR
#define incompleteislink             TRUE
#define ignored_types                ",diz,debug,message,imdb,html,url,m3u,metadata,exe,sh"
#define deny_double_sfv              FALSE
#define force_sfv_first              FALSE
#define audio_genre_path             "/site/sorted/mp3/sorted.by.genre/"
#define audio_artist_path            "/site/sorted/mp3/sorted.by.artist/"
#define audio_year_path              "/site/sorted/mp3/sorted.by.year/"
#define audio_group_path             "/site/sorted/mp3/sorted.by.group/"
#define audio_language_path          "/site/sorted/mp3/sorted.by.language/"
#define allowed_constant_bitrates    "96,160,192,320"
#define allowed_years                "1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022"
#define banned_genres                ""
#define allowed_genres               "Acid,Acid,Jazz,Acid,Punk,Acoustic,Alternative,AlternRock,Ambient,Anime,Avantgarde,Ballad,Bass,Beat,Bebob,Big,Band,Black,Metal,Bluegrass,Blues,Booty,Bass,BritPop,Cabaret,Celtic,Chamber,Music,Chanson,Chorus,Christian,Gangsta,Rap,Christian,Rap,Christian,Rock,Classic,Rock,Classical,Club,Club,House,Comedy,Contemporary,Christian,Country,Crossover,Cult,Dance,Dance,Hall,Darkwave,Death,Metal,Disco,Dream,Drum,&,Bass,Drum,Solo,Duet,Easy,Listening,Electronic,Ethnic,Euro-House,Euro-Techno,Eurodance,Fast,Fusion,Folk,Folk-Rock,Folklore,Freestyle,Funk,Fusion,Game,Gangsta,Goa,Gospel,Gothic,Gothic,Rock,Grunge,Hard,Rock,Hardcore,Heavy,Metal,Hip-Hop,House,Humour,Indie,Industrial,Instrumental,Instrumental,Pop,Instrumental,Rock,Jazz,Jazz+Funk,JPop,Jungle,Latin,Lo-Fi,Meditative,Merengue,Metal,Musical,National,Folk,Native,American,Negerpunk,New,Age,New,Wave,Noise,Oldies,Opera,Other,Polka,Polsk,Punk,Pop,Pop-Folk,Pop_Funk,Porn,Groove,Power,Ballad,Pranks,Primus,Progressive,Rock,Psychedelic,Psychedelic,Rock,Punk,Punk,Rock,R&B,Rap,Rave,Reggae,Retro,Revival,Rhythmic,Soul,Rock,Rock,&,Roll,Salsa,Samba,Satire,Showtunes,Ska,Slow,Jam,Slow,Rock,Sonata,Soul,Sound,Clip,Soundtrack,Southern,Rock,Space,Speech,Swing,Symphonic,Rock,Symphony,Synthpop,Tango,Techno,Techno-Industrial,Terror,Thrash,Metal,Top,40,Trailer,Trance,Tribal,Trip-Hop,Unknown,Vocal"
#define audio_genre_sort             TRUE
#define audio_year_sort              TRUE
#define audio_artist_sort            TRUE
#define audio_group_sort             TRUE
#define audio_language_sort          TRUE
#define audio_cbr_check              TRUE
#define audio_cbr_warn               TRUE
#define audio_year_check             TRUE
#define audio_year_warn              TRUE
#define audio_banned_genre_check     TRUE
#define audio_allowed_genre_check    TRUE
#define audio_genre_warn             TRUE

#define enable_nfo_script            TRUE
#define nfo_script                   "/bin/psxc-imdb.sh"
#define enable_complete_script       TRUE
#define complete_script              "/bin/nfo_copy.sh"

#define enable_audio_script             TRUE
#define audio_script                    "/bin/ng-chown"
#define audio_script_cookies            "0 0 0 1 0 1 - \"%w\" \"%?\""
#define allow_gid_change_in_ng_chown    TRUE
#define allow_dir_chown_in_ng_chown     TRUE

/*
* WUSEMAN 
*/
#define write_complete_message FALSE
#define write_complete_message_in_group_dirs FALSE
#define always_scan_audio_syms FALSE
#define SPEEDTEST "BW: %.1fMiB (%.1fMB) @ %.2fMbps (%.2fMB/s)."
#define allow_dir_chown_in_ng_chown TRUE
#define allowed_types "jpg,jpeg,cue,m3u,txt,vob,png,m2ts,ts,log"
#define allowed_types_exemption_dirs "/site/requests/ /site/private/"
#define audio_artist_nosub TRUE
#define audio_artist_sort TRUE
#define audio_types "mp3"
#define create_missing_sfv TRUE
#define create_missing_sfv_link TRUE
#define disable_audio_halfway TRUE
#define disable_audio_newleader TRUE
#define disable_audio_norace_complete FALSE
#define disable_audio_norace_halfway TRUE
EOF
```

Configure, compile and install pzs-ng

cd /opt/pzs-ng
./configure; 
make -j$(nproc)
make install

Configure pzs-ng

cd /opt/pzs-ng/sitebot/
cp -R ngBot.* plugins themes modules /home/wuseman/eggdrop/pzs-ng
cp ngBot.conf.dist /home/wuseman/eggdrop/pzs-ng/ngBot.conf
echo -e "\n### pzs-ng for glftpd\nsource pzs-ng/ngBot.tcl" >> ~/eggdrop/eggdrop.conf

Create site dirs

cd /glftpd/site
 mkdir ebooks  games  __hacking  mbluray  mp3  mvids  scenenotices  scene_stuff  software  tutorial  tv  x2641080p  x264720p  x264sd  xxx2160p  xxxsd

Simple tricks for setup the sections

ls -1 |sed 's/^/\/site\/glftpd\/site\/incoming\//g'

/site/glftpd/site/incoming/android
/site/glftpd/site/incoming/dvdr
/site/glftpd/site/incoming/ebooks
/site/glftpd/site/incoming/games
/site/glftpd/site/incoming/__hacking
/site/glftpd/site/incoming/mbluray
/site/glftpd/site/incoming/mp3
/site/glftpd/site/incoming/mvids
/site/glftpd/site/incoming/scenenotices
/site/glftpd/site/incoming/scene_stuff
/site/glftpd/site/incoming/software
/site/glftpd/site/incoming/tutorial
/site/glftpd/site/incoming/tv
/site/glftpd/site/incoming/x2641080p
/site/glftpd/site/incoming/x264720p
/site/glftpd/site/incoming/x264sd
/site/glftpd/site/incoming/xxx2160p
set paths(android)            "/site/glftpd/site/incoming/android"
set paths(dvdr)               "/site/glftpd/site/incoming/dvdr"
set paths(ebooks)             "/site/glftpd/site/incoming/ebooks"
set paths(games_linux)       "/site/glftpd/site/incoming/games/linux"
set paths(games_windows)      "/site/glftpd/site/incoming/games/_windows"
set paths(_hacking)           "/site/glftpd/site/incoming/__hacking"
set paths(mbluray)            "/site/glftpd/site/incoming/mbluray"
set paths(mp3)                "/site/glftpd/site/incoming/mp3"
set paths(mvids)              "/site/glftpd/site/incoming/mvids"
set paths(mbluray)              "/site/glftpd/site/incoming/mvids"
set paths(scenenotices)       "/site/glftpd/site/incoming/scenenotices"
set paths(scene_stuff)        "/site/glftpd/site/incoming/scene_stuff"
set paths(software)           "/site/glftpd/site/incoming/software"
set paths(tutorial)           "/site/glftpd/site/incoming/tutorial"
set paths(tv)                 "/site/glftpd/site/incoming/tv"
set paths(x2641080p)          "/site/glftpd/site/incoming/x2641080p"
set paths(x2642160p)          "/site/glftpd/site/incoming/x2641080p"
set paths(x264720p)           "/site/glftpd/site/incoming/x264720p"
set paths(x264sd)             "/site/glftpd/site/incoming/x264sd"
set paths(xxx2160p)           "/site/glftpd/site/incoming/xxx2160p"
set paths(xxxsd)              "/site/glftpd/site/incoming/xxxsd"
set paths(requests)           "/site/glftpd/site/requests"
set paths(speedtest)           "/site/glftpd/site/speedtest"
set chanlist(android)          $mainchan
set chanlist(_hacking)         $mainchan
set chanlist(mbluray)          $mainchan
set chanlist(mp3)              $mainchan
set chanlist(mvids)            $mainchan
set chanlist(mbluray)            $mainchan
set chanlist(scenenotices)     $mainchan
set chanlist(scene_stuff)      $mainchan
set chanlist(software)         $mainchan
set chanlist(tutorial)         $mainchan
set chanlist(tv)               $mainchan
set chanlist(x2641080p)        $mainchan
set chanlist(x2642160p)        $mainchan
set chanlist(x264720p)         $mainchan
set chanlist(x264sd)           $mainchan
set chanlist(xxx2160p)         $mainchan
set chanlist(xxxsd)            $mainchan
set chanlist(requests)         $mainchan
set chanlist(speedtest)        $mainchan

set chanlist(dvdr)             $mainchan
set chanlist(ebooks)           $mainchan
set chanlist(games_linux)      $mainchan
set chanlist(games_windows)    $mainchan
set chanlist(DEFAULT)          $mainchan
set chanlist(WELCOME)          $mainchan
set statsection(0)             "DEFAULT"
set statsection(1)             "PRE"