summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2007-11-18 08:41:53 +0000
committerAndreas Brachold <vdr07@deltab.de>2007-11-18 08:41:53 +0000
commit5a42246e9309641278c119528133fb1bf0416f1e (patch)
tree9c7b4d37d8c681421e37bef8f3e1d09396d51374
parent77f9f2cfd5656e4f5b2407915ca7122ec2e28b0a (diff)
downloadxxv-5a42246e9309641278c119528133fb1bf0416f1e.tar.gz
xxv-5a42246e9309641278c119528133fb1bf0416f1e.tar.bz2
* Reorder file names of documentation
* Create upgrade-xxv-db.sql only with user data tables
-rw-r--r--INSTALL95
-rw-r--r--Makefile13
-rw-r--r--README7
-rw-r--r--README.txt3
-rwxr-xr-xbin/xxvd2
-rw-r--r--contrib/export-data.sql3
-rw-r--r--contrib/import-data.sql5
-rwxr-xr-xcontrib/update-xxv2
-rw-r--r--contrib/upgrade-xxv-db.sql192
-rw-r--r--doc/CHANGELOG (renamed from doc/CHANGELOG.txt)0
-rw-r--r--doc/COPYING (renamed from doc/COPYING.txt)0
-rw-r--r--doc/LIESMICH (renamed from doc/LIESMICH.txt)0
-rw-r--r--doc/NEWS (renamed from doc/NEWS.txt)0
-rw-r--r--doc/README (renamed from doc/README.txt)0
-rw-r--r--doc/TODO.txt6
-rwxr-xr-xinstall.sh2
-rw-r--r--lib/XXV/OUTPUT/Console.pm26
-rw-r--r--lib/XXV/OUTPUT/Html.pm25
18 files changed, 171 insertions, 210 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..68cd410
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,95 @@
+
+
+After download xxv package, it's must unpacked. Please replace {VERSION} with
+your active release number and $SOURCEDIR with your prefered directory used by
+unpacking.
+
+#> cd $SOURCEDIR
+#> tar xvzf xxv-{VERSION}.tgz
+#> cd xxv-{VERSION}
+
+Install mysql ------------------------------------------------------------------
+
+If MySQL is not yet installed, install it from prebuilded packages or build
+it from source.
+
+http://www.mysql.com/
+http://dev.mysql.com/doc/refman/5.0/en/installing-source.html
+
+Lets install.sh do the work ----------------------------------------------------
+
+If you don't have prebuilded perl package for your system. XXV help with a
+installation script $SOURCEDIR/install.sh. ( On Debian use ./install-debian.sh )
+
+#> cd $SOURCEDIR/xxv-{VERSION}/
+#> ./install.sh
+
+It's will be install xxv and depends perl modules inside /usr/local/... and
+create configuration, database and runlevel scripts.
+
+Manual build and install depends perl modules ----------------------------------
+
+For alternative way is installation with a little helper "Bundle::Xxv".
+It's enable the build of depends perl modules with online installation via cpan.
+http://www.cpan.org/
+
+#> cd $SOURCEDIR/xxv-{VERSION}/lib
+#> mkdir -p ~/.cpan/Bundle
+#> cp Bundle/Xxv.pm ~/.cpan/Bundle
+#> perl -MCPAN -e 'install Bundle::Xxv'
+
+Copy some files ----------------------------------------------------------------
+
+Install the man-page, which can be viewed later with man xxvd.
+
+#> cd $SOURCEDIR/xxv-{VERSION}/
+#> cp doc/xxvd.1 /usr/share/man/man1
+
+Enable rotation of logging files -----------------------------------------------
+
+And don't forgot to activate the rotate of the log files.
+
+#> cd $SOURCEDIR/xxv-{VERSION}/
+#> cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd
+
+Adjust and install configuration file ------------------------------------------
+
+There is a example of configuration file, used by xxvd. Adjust now database
+connection and the mysql account, see below at database creation for details.
+
+#> cd $SOURCEDIR/xxv-{VERSION}/
+#> nano etc/xxvd.cfg.example
+#> cp etc/xxvd.cfg.example /etc/xxvd.cfg
+
+And as last step adjust your settings, like installation folder, location of
+configuration file and copy this runlevel script.
+
+#> cd $SOURCEDIR/xxv-{VERSION}/
+#> nano etc/xxvd
+#> cp etc/xxvd /etc/init.d/xxvd
+
+Create initial database --------------------------------------------------------
+
+Use the provided script, to create the xxv database. Adapt before username and
+its password on 'contrib/create-database.sql', for a xxv used mysql account,
+with your personal preferences.
+
+#> cd $SOURCEDIR/xxv-{VERSION}/
+#> cat contrib/create-database.sql | mysql -u root
+
+Same can do alternatively in follow individually steps:
+
+#> mysql -u root -e "create database xxv;"
+#> mysql -u root -e "grant all privileges on xxv.* to username@localhost IDENTIFIED BY 'password';"
+#> mysql -u root -e "flush privileges;"
+
+Now register the database connection and the mysql account in /etc/xxvd.cfg:
+
+[General]
+DSN=DBI:mysql:database=xxv;host=localhost;port=3306
+PWD=password
+USR=username
+
+
+
+
diff --git a/Makefile b/Makefile
index 14e6355..3aa1599 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@
# $Id$
XXV = xxv
-VERSION = 1.0
+VERSION = 1.0.1
### The name of the distribution archive:
@@ -15,7 +15,7 @@ TMPDIR = /tmp
### The subdirectories:
### Targets:
-INCLUDE = bin contrib doc etc html share lib locale wml README.txt Makefile install.sh
+INCLUDE = bin contrib doc etc html share lib locale wml README INSTALL Makefile install.sh
EXCLUDE = "*~" "*.bak" "*.org" "*.diff" "xxvd.pid" "$(XXV)-*.tgz"
@@ -49,15 +49,13 @@ removefiles:
|| exit 1;\
done
-compatiblesqldump:
- @sed -e "s/ DEFAULT CHARSET=latin1//g" contrib/upgrade-xxv-db.sql > $(TMPDIR)/$(ARCHIVE)/contrib/upgrade-xxv-db.sql
-
updateversion:
@sed -e "s/__VERSION__/$(VERSION)/g" bin/xxvd > $(TMPDIR)/$(ARCHIVE)/bin/xxvd
+DBTABLES = $(shell cat ./contrib/update-xxv | grep tables= | cut -d '=' -f 2 | sed -e s/\'//g;)
updatesql:
- @echo Please type the DB-Password for root:
- @mysqldump -p -n -d --add-drop-table -p -u root xxv 1> ./contrib/upgrade-xxv-db.sql
+ @echo Please type the DB-Password for root:
+ @mysqldump -p -n -d --add-drop-table --compatible=mysql40,no_table_options -p -u root xxv $(DBTABLES) -r ./contrib/upgrade-xxv-db.sql
setpermission:
@find $(TMPDIR)/$(ARCHIVE) -type d -exec chmod 755 {} \;
@@ -74,7 +72,6 @@ dist: tmpfolder\
copyfiles\
removefiles\
updateversion\
- compatiblesqldump\
setpermission
@chown root.root -R $(TMPDIR)/$(ARCHIVE)/*
@tar czf $(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(ARCHIVE)
diff --git a/README b/README
new file mode 100644
index 0000000..e73946f
--- /dev/null
+++ b/README
@@ -0,0 +1,7 @@
+
+Please take a look into file INSTALL and doc/ files for all usefull stuff.
+
+--
+
+Schaut bitte in die Datei INSTALL und in die doc/ Dateien für
+weiterführende Informationen.
diff --git a/README.txt b/README.txt
deleted file mode 100644
index fbe3cdd..0000000
--- a/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-Please take a look in the doc/*.txt Files for all usefull stuff.
-------------------
-Schaut bitte in das doc/*.txt Dateien für weiterführende Informationen. \ No newline at end of file
diff --git a/bin/xxvd b/bin/xxvd
index 4faa145..d14b9c1 100755
--- a/bin/xxvd
+++ b/bin/xxvd
@@ -43,7 +43,7 @@ $|++;
my $REV = &getRev() || (split(/ /, '$Revision$'))[1];
my $MODULES;
-my $VERSION = '1.0';
+my $VERSION = '1.0.1';
my $VDRVERSION = 0;
my $CLEANUP;
my $DBCACHE = {};
diff --git a/contrib/export-data.sql b/contrib/export-data.sql
index d863159..3154497 100644
--- a/contrib/export-data.sql
+++ b/contrib/export-data.sql
@@ -3,8 +3,9 @@
--
select * INTO OUTFILE '/tmp/autotimer.sav' from AUTOTIMER;
-select * INTO OUTFILE '/tmp/user.sav' from USER;
select * INTO OUTFILE '/tmp/chronicle.sav' from CHRONICLE;
select * INTO OUTFILE '/tmp/medialib_actors.sav' from MEDIALIB_ACTORS;
select * INTO OUTFILE '/tmp/medialib_videodata.sav' from MEDIALIB_VIDEODATA;
select * INTO OUTFILE '/tmp/medialib_videogenre.sav' from MEDIALIB_VIDEOGENRE;
+select * INTO OUTFILE '/tmp/user.sav' from USER;
+
diff --git a/contrib/import-data.sql b/contrib/import-data.sql
index fbad5e8..003ff05 100644
--- a/contrib/import-data.sql
+++ b/contrib/import-data.sql
@@ -4,14 +4,15 @@
DELETE from AUTOTIMER;
DELETE from CHRONICLE;
-DELETE from USER;
DELETE from MEDIALIB_ACTORS;
DELETE from MEDIALIB_VIDEODATA;
DELETE from MEDIALIB_VIDEOGENRE;
+DELETE from USER;
load data infile '/tmp/autotimer.sav' into table AUTOTIMER;
-load data infile '/tmp/user.sav' into table USER;
load data infile '/tmp/chronicle.sav' into table CHRONICLE;
load data infile '/tmp/medialib_actors.sav' into table MEDIALIB_ACTORS;
load data infile '/tmp/medialib_videodata.sav' into table MEDIALIB_VIDEODATA;
load data infile '/tmp/medialib_videogenre.sav' into table MEDIALIB_VIDEOGENRE;
+load data infile '/tmp/user.sav' into table USER;
+
diff --git a/contrib/update-xxv b/contrib/update-xxv
index e4a6dc4..b9151e5 100755
--- a/contrib/update-xxv
+++ b/contrib/update-xxv
@@ -22,7 +22,7 @@ actualVersion=25
# Specify tables to export before and import after update
#
-tables='AUTOTIMER USER CHRONICLE MEDIALIB_ACTORS MEDIALIB_VIDEODATA MEDIALIB_VIDEOGENRE'
+tables='AUTOTIMER CHRONICLE MEDIALIB_ACTORS MEDIALIB_VIDEODATA MEDIALIB_VIDEOGENRE USER'
showTitle()
{
diff --git a/contrib/upgrade-xxv-db.sql b/contrib/upgrade-xxv-db.sql
index 7ca4f5e..cbfd939 100644
--- a/contrib/upgrade-xxv-db.sql
+++ b/contrib/upgrade-xxv-db.sql
@@ -1,8 +1,14 @@
--- MySQL dump 10.10
+-- MySQL dump 10.11
--
-- Host: localhost Database: xxv
-- ------------------------------------------------------
--- Server version 5.0.30-Debian_3
+-- Server version 5.0.32-Debian_7etch1
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL40,NO_TABLE_OPTIONS' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `AUTOTIMER`
@@ -30,44 +36,7 @@ CREATE TABLE `AUTOTIMER` (
`stopdate` datetime default NULL,
`count` int(11) default NULL,
PRIMARY KEY (`Id`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `CHANNELGROUPS`
---
-
-DROP TABLE IF EXISTS `CHANNELGROUPS`;
-CREATE TABLE `CHANNELGROUPS` (
- `Id` int(11) NOT NULL auto_increment,
- `Name` varchar(100) default 'unknown',
- `Counter` int(11) default '0',
- PRIMARY KEY (`Id`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `CHANNELS`
---
-
-DROP TABLE IF EXISTS `CHANNELS`;
-CREATE TABLE `CHANNELS` (
- `Id` varchar(100) NOT NULL,
- `Name` varchar(100) NOT NULL default '',
- `Frequency` int(11) NOT NULL default '0',
- `Parameters` varchar(100) default '',
- `Source` varchar(100) default NULL,
- `Srate` int(11) default '0',
- `VPID` varchar(100) default '',
- `APID` varchar(100) default '',
- `TPID` varchar(100) default '',
- `CA` varchar(100) default '',
- `SID` int(11) default '0',
- `NID` int(11) default '0',
- `TID` int(11) default '0',
- `RID` int(11) default '0',
- `GRP` int(11) default '0',
- `POS` int(11) NOT NULL,
- PRIMARY KEY (`Id`)
-) TYPE=MyISAM;
+);
--
-- Table structure for table `CHRONICLE`
@@ -83,32 +52,7 @@ CREATE TABLE `CHRONICLE` (
`duration` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `hash` (`hash`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `EPG`
---
-
-DROP TABLE IF EXISTS `EPG`;
-CREATE TABLE `EPG` (
- `eventid` bigint(20) unsigned NOT NULL default '0',
- `title` text NOT NULL,
- `subtitle` text,
- `description` text,
- `channel_id` varchar(100) NOT NULL default '',
- `starttime` datetime NOT NULL default '0000-00-00 00:00:00',
- `duration` int(11) NOT NULL default '0',
- `tableid` tinyint(4) default '0',
- `image` text,
- `version` tinyint(3) default '0',
- `video` varchar(100) default '',
- `audio` varchar(255) default '',
- `addtime` datetime NOT NULL default '0000-00-00 00:00:00',
- `vpstime` datetime default '0000-00-00 00:00:00',
- PRIMARY KEY (`eventid`),
- KEY `starttime` (`starttime`),
- KEY `channel_id` (`channel_id`)
-) TYPE=MyISAM;
+);
--
-- Table structure for table `MEDIALIB_ACTORS`
@@ -121,7 +65,7 @@ CREATE TABLE `MEDIALIB_ACTORS` (
`imgurl` varchar(255) NOT NULL default '',
`checked` timestamp NOT NULL,
PRIMARY KEY (`name`)
-) TYPE=MyISAM;
+);
--
-- Table structure for table `MEDIALIB_VIDEODATA`
@@ -169,7 +113,7 @@ CREATE TABLE `MEDIALIB_VIDEODATA` (
KEY `mediatype` (`mediatype`,`istv`),
FULLTEXT KEY `actors_idx` (`actors`),
FULLTEXT KEY `comment` (`comment`)
-) TYPE=MyISAM;
+);
--
-- Table structure for table `MEDIALIB_VIDEOGENRE`
@@ -180,102 +124,7 @@ CREATE TABLE `MEDIALIB_VIDEOGENRE` (
`video_id` int(10) unsigned NOT NULL default '0',
`genre_id` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`video_id`,`genre_id`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `MUSIC`
---
-
-DROP TABLE IF EXISTS `MUSIC`;
-CREATE TABLE `MUSIC` (
- `Id` int(11) unsigned NOT NULL auto_increment,
- `FILE` text NOT NULL,
- `ARTIST` varchar(128) default 'unknown',
- `ALBUM` varchar(128) default 'unknown',
- `TITLE` varchar(128) default 'unknown',
- `COMMENT` varchar(128) default NULL,
- `TRACKNUM` varchar(10) default '0',
- `YEAR` smallint(4) unsigned default NULL,
- `GENRE` varchar(128) default NULL,
- `BITRATE` smallint(4) unsigned default NULL,
- `FREQUENCY` varchar(4) default NULL,
- `SECS` int(11) NOT NULL,
- PRIMARY KEY (`Id`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `OLDEPG`
---
-
-DROP TABLE IF EXISTS `OLDEPG`;
-CREATE TABLE `OLDEPG` (
- `eventid` bigint(20) unsigned NOT NULL default '0',
- `title` text NOT NULL,
- `subtitle` text,
- `description` text,
- `channel_id` varchar(100) NOT NULL default '',
- `starttime` datetime NOT NULL default '0000-00-00 00:00:00',
- `duration` int(11) NOT NULL default '0',
- `tableid` tinyint(4) default '0',
- `image` text,
- `version` tinyint(3) default '0',
- `video` varchar(100) default '',
- `audio` varchar(255) default '',
- `addtime` datetime NOT NULL default '0000-00-00 00:00:00',
- `vpstime` datetime default '0000-00-00 00:00:00',
- PRIMARY KEY (`eventid`),
- KEY `starttime` (`starttime`),
- KEY `channel_id` (`channel_id`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `RECORDS`
---
-
-DROP TABLE IF EXISTS `RECORDS`;
-CREATE TABLE `RECORDS` (
- `eventid` bigint(20) unsigned NOT NULL,
- `RecordId` int(11) unsigned NOT NULL,
- `RecordMD5` varchar(32) NOT NULL,
- `Path` text NOT NULL,
- `Prio` tinyint(4) NOT NULL,
- `Lifetime` tinyint(4) NOT NULL,
- `State` tinyint(4) NOT NULL,
- `FileSize` int(11) unsigned default '0',
- `Marks` text,
- `Type` enum('TV','RADIO','UNKNOWN') default 'TV',
- `addtime` timestamp NOT NULL,
- PRIMARY KEY (`eventid`),
- UNIQUE KEY `eventid` (`eventid`)
-) TYPE=MyISAM;
-
---
--- Table structure for table `TIMERS`
---
-
-DROP TABLE IF EXISTS `TIMERS`;
-CREATE TABLE `TIMERS` (
- `Id` int(11) unsigned NOT NULL,
- `Status` char(1) default '1',
- `ChannelID` varchar(100) NOT NULL default '',
- `Day` varchar(20) default '-------',
- `Start` int(11) unsigned default NULL,
- `Stop` int(11) unsigned default NULL,
- `Priority` tinyint(2) default NULL,
- `Lifetime` tinyint(2) default NULL,
- `File` text,
- `Summary` text,
- `NextStartTime` datetime default NULL,
- `NextStopTime` datetime default NULL,
- `Collision` varchar(100) default '0',
- `eventid` bigint(20) unsigned default '0',
- `eventstarttime` datetime default NULL,
- `eventduration` int(10) unsigned default '0',
- `AutotimerId` int(11) unsigned default '0',
- `addtime` timestamp NOT NULL,
- `Checked` char(1) default '0',
- PRIMARY KEY (`Id`)
-) TYPE=MyISAM;
+);
--
-- Table structure for table `USER`
@@ -293,13 +142,12 @@ CREATE TABLE `USER` (
`MaxLifeTime` tinyint(2) default '0',
`MaxPriority` tinyint(2) default '0',
PRIMARY KEY (`Id`)
-) TYPE=MyISAM;
+);
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
---
--- Table structure for table `VERSION`
---
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-DROP TABLE IF EXISTS `VERSION`;
-CREATE TABLE `VERSION` (
- `Version` tinyint(4) NOT NULL default '0'
-) TYPE=MyISAM;
+-- Dump completed on 2007-11-17 17:21:22
diff --git a/doc/CHANGELOG.txt b/doc/CHANGELOG
index 79c237e..79c237e 100644
--- a/doc/CHANGELOG.txt
+++ b/doc/CHANGELOG
diff --git a/doc/COPYING.txt b/doc/COPYING
index 223ede7..223ede7 100644
--- a/doc/COPYING.txt
+++ b/doc/COPYING
diff --git a/doc/LIESMICH.txt b/doc/LIESMICH
index 9ec1c05..9ec1c05 100644
--- a/doc/LIESMICH.txt
+++ b/doc/LIESMICH
diff --git a/doc/NEWS.txt b/doc/NEWS
index 048f74b..048f74b 100644
--- a/doc/NEWS.txt
+++ b/doc/NEWS
diff --git a/doc/README.txt b/doc/README
index 1effd4a..1effd4a 100644
--- a/doc/README.txt
+++ b/doc/README
diff --git a/doc/TODO.txt b/doc/TODO.txt
deleted file mode 100644
index 9698947..0000000
--- a/doc/TODO.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Featurerequest (ToDo DevVersion >= 1.0):
-
-* Zeitintensive Aufgaben sollten vorher den sysload prüfen (blafasel)
-* Echtes Telnetinterface mit history usw. (xpix)
-
-
diff --git a/install.sh b/install.sh
index aa0591c..b8bba79 100755
--- a/install.sh
+++ b/install.sh
@@ -198,7 +198,7 @@ doInstall()
makeDir "$LIBDIR" 1 && cp -r lib/* "$LIBDIR" || exit 1
makeDir "$SHAREDIR" 1 && cp -r share/* "$SHAREDIR" || exit 1
- makeDir "$DOCDIR" 1 && cp doc/CHANGELOG.txt doc/COPYING.txt doc/docu.tmpl doc/LIESMICH.txt doc/NEWS.txt doc/README.txt doc/TODO.txt doc/TUTORIAL.txt.gz "$DOCDIR" || exit 1
+ makeDir "$DOCDIR" 1 && cp INSTALL doc/COPYING doc/CHANGELOG doc/docu.tmpl doc/LIESMICH doc/NEWS doc/README doc/TUTORIAL.txt.gz "$DOCDIR" || exit 1
makeDir "$CONTRIBDIR" 1 && cp -r contrib/* "$CONTRIBDIR" || exit 1
makeDir "$SKINDIR" 1 && cp -r html wml "$SKINDIR" || exit 1
(cd "$SKINDIR";ln -s html default) || exit 1
diff --git a/lib/XXV/OUTPUT/Console.pm b/lib/XXV/OUTPUT/Console.pm
index dca6ee5..4358b88 100644
--- a/lib/XXV/OUTPUT/Console.pm
+++ b/lib/XXV/OUTPUT/Console.pm
@@ -628,7 +628,7 @@ sub pod {
$modname = ucfirst($modname) if($modname eq 'GENERAL');
my $podfile = sprintf('%s/%s.pod', $obj->{paths}->{PODPATH}, $modname);
- return $obj->err(gettext('Module %s not found!'), $modname)
+ return $obj->err(sprintf(gettext('Module %s not found!'), $modname))
unless(-r $podfile);
my $tmpdir = main::getModule('USER')->userTmp;
my $outfile = sprintf('%s/%s_%d.pod', $tmpdir, $modname, time);
@@ -654,14 +654,24 @@ sub txtfile {
my $filename = shift || return error('No file defined!');
my $param = shift || {};
- my $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename);
- my $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename);
-
- $txtfile = main::getModule('HTTPD')->unzip($gzfile)
- if(! -r $txtfile and -e $gzfile and -r $gzfile);
-
+ my $txtfile = sprintf('%s/%s', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $txtfile) {
+ $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $txtfile) {
+ my $gzfile = sprintf('%s/%s.gz', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $gzfile) {
+ $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $gzfile) {
+ my $e = $!;
+ error sprintf("Could not open file '%s/%s[.txt .gz txt.gz]! : %s", $obj->{paths}->{DOCPATH}, $filename, $e);
+ return $obj->err(sprintf(gettext("Could not open file '%s'! : %s"), $filename, $e));
+ }
+ }
+ $txtfile = main::getModule('HTTPD')->unzip($gzfile);
+ }
+ }
my $txt = load_file($txtfile);
- return $obj->message($txt, {tags => {first => "File: $filename.txt"}});
+ return $obj->message($txt, {tags => {first => "File: $filename"}});
}
# ------------------
diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm
index 32b946c..e2bce79 100644
--- a/lib/XXV/OUTPUT/Html.pm
+++ b/lib/XXV/OUTPUT/Html.pm
@@ -752,17 +752,28 @@ sub txtfile {
my $filename = shift || return error ('No file defined!');
my $param = shift || {};
- my $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename);
- my $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename);
-
- $txtfile = main::getModule('HTTPD')->unzip($gzfile)
- if(! -r $txtfile and -r $gzfile);
+ my $txtfile = sprintf('%s/%s', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $txtfile) {
+ $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $txtfile) {
+ my $gzfile = sprintf('%s/%s.gz', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $gzfile) {
+ $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename);
+ if(! -r $gzfile) {
+ my $e = $!;
+ error sprintf("Could not open file '%s/%s[.txt .gz txt.gz]! : %s", $obj->{paths}->{DOCPATH}, $filename, $e);
+ return $obj->err(sprintf(gettext("Could not open file '%s'! : %s"), $filename, $e));
+ }
+ }
+ $txtfile = main::getModule('HTTPD')->unzip($gzfile);
+ }
+ }
my $topic = gettext("File");
if($param->{'format'} eq 'txt') {
my $txt = load_file($txtfile);
- return $obj->message($txt, {tags => {first => "$topic: $filename.txt"}});
+ return $obj->message($txt, {tags => {first => "$topic: $filename"}});
}
my $u = main::getModule('USER');
@@ -776,7 +787,7 @@ sub txtfile {
);
my $html = load_file($htmlfile);
$html = $1 if($html =~ /\<body.*?\>(.+?)\<\/body\>/si);
- $obj->message($html, {tags => {first => "<h1>$topic: $filename.txt</h1>"}});
+ $obj->message($html, {tags => {first => "<h1>$topic: $filename</h1>"}});
}
# ------------------