Browse Source

- remove EPGscan plugin; new location is ni-neutrino-plugins repo

master
vanhofen 6 years ago
parent
commit
b9b7ffc74c
  1. 3
      archive-sources/EPGscan/EPGscan.cfg
  2. 8
      archive-sources/EPGscan/EPGscan.conf
  3. 306
      archive-sources/EPGscan/EPGscan.sh
  4. BIN
      archive-sources/EPGscan/EPGscan_hint.png
  5. 3
      archive-sources/EPGscan/EPGscan_setup.cfg
  6. 210
      archive-sources/EPGscan/EPGscan_setup.lua
  7. BIN
      archive-sources/EPGscan/EPGscan_setup_hint.png
  8. 12
      make/plugins.mk

3
archive-sources/EPGscan/EPGscan.cfg

@ -1,3 +0,0 @@
type=3
name=EPGscan [ start | stop ]
desc=Startet bzw. stoppt das Sammeln von EPG-Daten

8
archive-sources/EPGscan/EPGscan.conf

@ -1,8 +0,0 @@
my_bouquets=""
wait_period=15
del_epgstore=1
force_standby=0
need_standby=0
force_shutdown=0
rezap_hack=0
pr_auto_timer=0

306
archive-sources/EPGscan/EPGscan.sh

@ -1,306 +0,0 @@
#!/bin/sh
###############################################################################
#
# EPGscan.sh 1.02 vanhofen [NI-Team] (basiert auf einer Idee von SnowHead)
#
# Ziel:
# Jeden ersten TV-Kanal eines Transponders in den Bouquets fuer EPG-
# Aktualisierung anzappen.
# Erster Aufruf des Skripts dauert lange, da die Datei EPGscan.dat erstellt
# wird (mit einem Kanal pro Transponder). Die Datei kann danach auch manuell
# bearbeitet werden.
# Bei einem Durchlauf wird jeder Sender für 15 Sekunden eingeschaltet.
# Das sollte für die EPG Daten ausreichen.
# Bei laufenden Aufnahmen wird gewartet, bis die Aufnahme fertig ist.
#
# Parameter einstellbar in /var/tuxbox/config/EPGscan.conf:
# * Wartezeit pro Sender in Sekunden (wait_period=<sec>)
# * Löschen von gespeicherten EPG-Daten (del_epgstore=0|1)
# * Standby-Modus nach dem Zappen erzwingen (force_standby=0|1)
# * Zappen nur im Standby-Modus starten (need_standby=0|1)
# * Shutdown nach dem Zappen erzwingen (force_shutdown=0|1|2)
# * mit 'rcsim' zu den Favoriten zurück zappen (rezap_hack=0|1)
# * pr-auto-timer nach Zappen starten (pr_auto_timer=0|1)
# * Nur definierte Bouquets durchsuchen (my_bouquets="bouq1; bouq2")
#
###############################################################################
create_DATFILE() {
console "creating $DATFILE"
fbpopup "Erzeuge Kanalliste... Das kann etwas dauern."
echo -e "# $DATFILE: data for automatic epg-scan\n#" > $DATFILE
if [ -n "$my_bouquets" ]
then
rm -f /tmp/my_bouquets.xml
IFS_SAVE=$IFS
set -f
IFS=';'
for my_bouquet in $my_bouquets
do
my_bouquet=$(echo $my_bouquet | sed 's/^ *//g;s/ *$//g')
sed -ne "/Bouquet name=\"$my_bouquet\"/,/\/Bouquet/p" $bouquets >> /tmp/my_bouquets.xml
done
IFS=$IFS_SAVE
set +f
bouquets="/tmp/my_bouquets.xml"
fi
while read tag line
do
case ${tag:1:1} in
"T") # transponder
tsid_f=$(echo $line | cut -d'"' -f2)
tsid_s=$(echo $tsid_f | sed -e 's/^0*//')
done=
continue
;;
"S") # service
test $done && continue
echo $line | grep -qE 't="1"|t="11"|t="16"|t="19"|t="d3"' 2>/dev/null || continue
name=$(echo $line | cut -d'"' -f4)
test $(echo "$name" | sed 's/[[:print:]]//g') && continue
chid_f=$(echo $line | cut -d'"' -f2)
chid_s=$(echo $chid_f | sed -e 's/^0*//')
grep -qE "(i=\"$chid_f\".*t=\"$tsid_f\".*)" $bouquets 2>/dev/null || \
grep -qE "(i=\"$chid_s\".*t=\"$tsid_s\".*)" $bouquets 2>/dev/null || continue
console "found on TS $tsid_f: $name"
echo "$tsid_f" "$name" >> $DATFILE
done=$tsid_f
;;
esac
done < $services
fbpopup "Kanalliste erzeugt. Beginne Zapping..."
console "$DATFILE created"
}
fbpopup() {
wget -q -O /dev/null -Y off $hturl/control/message?popup="${0##*/}%0A${@}"
}
console() {
echo -e "\033[40;0;33m[${0##*/}] ${@}\033[0m"
}
KILLFILE=/tmp/EPGscan.kill
exist_KILLFILE() {
abort=false
ret=1
if [ -e $KILLFILE ]
then
fbpopup "Breche EPGscan ab."
console "aborting scan"
abort=true
ret=0
fi
return $ret
}
freemem() {
sync && echo 3 > /proc/sys/vm/drop_caches
}
cleanup() {
rm -f $KILLFILE
}
eXit() {
cleanup
exit $1
}
sig_handler() {
console "Signal caught - will exiting asap"
touch $KILLFILE
}
case "$1" in
-b)
console "go ahead"
CONFIGDIR="/var/tuxbox/config"
neutrino=${CONFIGDIR}"/neutrino.conf"
services=${CONFIGDIR}"/zapit/services.xml"
if [ -e ${CONFIGDIR}"/zapit/ubouquets.xml" ]
then
bouquets=${CONFIGDIR}"/zapit/ubouquets.xml"
else
bouquets=${CONFIGDIR}"/zapit/bouquets.xml"
fi
# ensure to get access to controlapi
nhttpd=${CONFIGDIR}"/nhttpd.conf"
htauth=$(grep "^mod_auth.authenticate" $nhttpd | cut -d"=" -f2)
htuser=$(grep "^mod_auth.username" $nhttpd | cut -d"=" -f2)
htpass=$(grep "^mod_auth.password" $nhttpd | cut -d"=" -f2)
htport=$(grep "^WebsiteMain.port" $nhttpd | cut -d"=" -f2)
if [ "$htauth" = "true" ]; then
hturl="http://$htuser:$htpass@127.0.0.1:$htport"
else
hturl="http://127.0.0.1:$htport"
fi
DATFILE=${CONFIGDIR}"/EPGscan.dat"
CONFIGFILE=${CONFIGDIR}"/EPGscan.conf"
# read/parse keywords in .conf
test -e $CONFIGFILE && . $CONFIGFILE 2> /dev/null
# create .dat if necessary
test -e $DATFILE || create_DATFILE
case $wait_period in
''|*[!0-9]*) wait_period=15 ;;
esac
# wait until standby (or timeout) if desired
if [ "$need_standby" = "1" ]
then
t=81
m=$t
while [ $(wget -q -O - "$hturl/control/standby" | sed 's/\r$//') = "off" ]
do
if [ ${t:1:1} -eq ${t:0:1} ]; then
console "timeout reached - exiting undone"
eXit 1
fi
t=$((t+1))
console "wait until standby (or timeout)"
sleep 900
done
test $t -ne $m && sleep 60 # a safety sleep
fi
# wait while recording
while [ $(wget -q -O - "$hturl/control/setmode?status" | sed 's/\r$//') = "on" ]
do
fbpopup "Eine Aufnahme laeuft. Ich warte..."
console "wait while recording"
sleep 900
done
# remember standby-mode
standby=$(wget -q -O - "$hturl/control/standby" | sed 's/\r$//')
# leave standby-mode if necessary
if [ "$standby" = "on" ]
then
console "leave standby-mode"
wget -q -O /dev/null "$hturl/control/standby?off&cec=off"
sleep 10
fi
# remove stored epg-data if desired and allowed
epg_save=$(grep "^epg_save=" $neutrino | cut -d'=' -f2)
if [ "$del_epgstore" = "1" -a "$epg_save" = "true" ]
then
console "remove stored epg-data"
epg_dir=$(grep "^epg_dir=" $neutrino | cut -d'=' -f2)
test $epg_dir && rm -f $epg_dir/*.*
fi
# catch some signals from here till end
trap sig_handler INT TERM
# remember volume-level and turn mute
volume=$(wget -q -O - "$hturl/control/volume" | sed 's/\r$//')
pzapit -vol 0 > /dev/null
# remember current channel
curr=$(pzapit -gi | cut -d' ' -f1)
# get new epg-data
while read tsid chan
do
test "${tsid:0:1}" = "#" && continue
fbpopup "Verbleibe auf TS $tsid fuer $wait_period Sekunden."
console "stay on TS $tsid ($chan) for $wait_period seconds"
freemem
pzapit -n "$chan" > /dev/null
i=0
while [ $i -lt $wait_period ]
do
i=$((i+1))
sleep 1
exist_KILLFILE && break
done
test "$abort" = "true" && break
done < $DATFILE
freemem
# rezap
pzapit -zi $curr
if [ "$rezap_hack" = "1" -a -x /bin/rcsim ]
then
keys="FAVORITES OK OK"
for key in $keys
do
# a terrible solution :/
rcsim KEY_${key} && sleep 1
done
fi
# pump up the volume
pzapit -vol $volume > /dev/null
# enter standby-mode if necessary or desired
if [ "$standby" = "on" -o "$force_standby" = "1" -o "$force_shutdown" != "0" ]
then
console "enter standby-mode"
wget -q -O /dev/null "$hturl/control/standby?on"
fi
# start pr-auto-timer if desired and found
if [ "$pr_auto_timer" = "1" -a -x /lib/tuxbox/plugins/pr-auto-timer ]
then
console "start pr-auto-timer"
/lib/tuxbox/plugins/pr-auto-timer --menu &
fi
# reboot/halt if desired
if [ "$force_shutdown" != "0" ]
then
console "prepare shutdown"
while [ -e /var/run/pr-auto-timer.pid ]
do
console "wait for pr-auto-timer"
sleep 60
done
if [ "$epg_save" = "true" ]
then
sleep 120 # for safety
fi
case $force_shutdown in
1) (sleep 2; halt) & ;;
2) (sleep 2; reboot) & ;;
esac
fi
console "done."
eXit 0
;;
*)
if ps -ef | grep '[E]PGscan.sh -b' > /dev/null
then
touch $KILLFILE
else
($0 -b > /dev/console) &
fi
;;
esac
exit 0

BIN
archive-sources/EPGscan/EPGscan_hint.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 B

3
archive-sources/EPGscan/EPGscan_setup.cfg

@ -1,3 +0,0 @@
type=4
name=EPGscan - Setup
desc=EPGscan Konfigurationsplugin

210
archive-sources/EPGscan/EPGscan_setup.lua

@ -1,210 +0,0 @@
caption="EPGscan (Script-Plugin)"
C={}
C["my_bouquets"]=""
C["wait_period"]=15
C["del_epgstore"]=1
C["need_standby"]=0
C["rezap_hack"]=0
C["pr_auto_timer"]=0
C["force_standby"]=0
C["force_shutdown"]=0
config="/var/tuxbox/config/EPGscan.conf"
changed = 0
n = neutrino()
-- ---------------------------------------------------------------------------
function trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
function load()
local f = io.open(config, "r")
if f then
for line in f:lines() do
local key, val = line:match("^([^=#]+)=([^\n]*)")
if (key) then
if (val == nil) then
val=""
end
C[trim(key)]=trim(val)
end
end
f:close()
end
end
function save()
if (changed == 1) then
changed = 0
local h = hintbox.new{caption="Einstellungen werden gespeichert", text="Bitte warten ..."}
h:paint()
local f = io.open(config, "w")
if f then
f:write("my_bouquets=" .. C["my_bouquets"] .. "\n")
f:write("wait_period=" .. C["wait_period"] .. "\n")
f:write("del_epgstore=" .. C["del_epgstore"] .. "\n")
f:write("need_standby=" .. C["need_standby"] .. "\n")
f:write("rezap_hack=" .. C["rezap_hack"] .. "\n")
f:write("pr_auto_timer=" .. C["pr_auto_timer"] .. "\n")
f:write("force_standby=" .. C["force_standby"] .. "\n")
f:write("force_shutdown=" .. C["force_shutdown"] .. "\n")
f:close()
local i = 0
repeat
i = i + 1
msg, data = n:GetInput(500)
until msg == RC.ok or msg == RC.home or i == 2
end
h:hide()
end
end
function handle_key(a)
if (changed == 0) then
return MENU_RETURN["EXIT"]
end
local res = messagebox.exec{title="Änderungen verwerfen?", text="Sollen die Änderungen verworfen werden?", buttons={ "yes", "no" } }
if (res == "yes") then
return MENU_RETURN["EXIT"]
else
return MENU_RETURN["REPAINT"]
end
end
on="ein"
off="aus"
function num2onoff(a)
if (tonumber(a) == 0) then
return off
else
return on
end
end
function onoff2num(a)
if (a == on) then
return 1
else
return 0
end
end
function set_onoff(k, v)
C[k]=onoff2num(v)
changed=1
end
yes="ja"
no="nein"
function num2yesno(a)
if (tonumber(a) == 0) then
return no
else
return yes
end
end
function yesno2num(a)
if (a == yes) then
return 1
else
return 0
end
end
function set_yesno(k, v)
C[k]=yesno2num(v)
changed=1
end
function set_string(k, v)
C[k]=v
changed=1
end
function set_quoted_string(k, v)
C[k]="\""..v.."\""
changed=1
end
function get_quoted_string(s)
return string.gsub(s, "\"", "")
end
-- ---------------------------------------------------------------------------
load()
-- force_shutdown start
table_force_shutdown = {
{ value = "0", desc = "nein" },
{ value = "1", desc = "Shutdown" },
{ value = "2", desc = "Reboot"}
}
-- values_force_shutdown = {}
descs_force_shutdown = {}
for v, w in ipairs(table_force_shutdown) do
-- values_force_shutdown[v] = w.value
descs_force_shutdown[v] = w.desc
end
function set_force_shutdown(k, v)
local __v
for _v, _w in ipairs(table_force_shutdown) do
if (_w.desc == v) then
__v = _w.value
break
end
end
C[k]=__v
changed=1
end
function get_desc_from_table(t, v)
local __d = ""
for _v, _w in ipairs(t) do
if (_w.value == v) then
__d = _w.desc
break
end
end
return __d
end
-- force_shutdown end
local m = menu.new{name=caption, icon="settings"}
m:addKey{directkey=RC["home"], id="home", action="handle_key"}
m:addKey{directkey=RC["setup"], id="setup", action="handle_key"}
m:addItem{type="separator"}
m:addItem{type="back"}
m:addItem{type="separatorline"}
m:addItem{type="forwarder", name="Speichern", action="save", icon="rot", directkey=RC["red"]}
m:addItem{type="separatorline"}
m:addItem{type="keyboardinput", action="set_quoted_string", id="my_bouquets", value=get_quoted_string(C["my_bouquets"]), name="Bouquets", help="Die Bouquets, die bei der Suche berücksichtigt werden sollen", help2="Kommagetrennt: Bouquet1, Bouquet2, ..."}
m:addItem{type="stringinput", action="set_string", id="wait_period", value=C["wait_period"], valid_chars="0123456789", name="Wartezeit pro Sender (in sek.)"}
m:addItem{type="separatorline", name="Vor dem EPGscan"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="del_epgstore", value=num2yesno(C["del_epgstore"]), name="Lösche gespeicherte EPG-Daten"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="need_standby", value=num2yesno(C["need_standby"]), name="Nur im Standby starten"}
m:addItem{type="separatorline", name="Nach dem EPGscan"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="rezap_hack", value=num2yesno(C["rezap_hack"]), name="Mit 'rcsim' zurück zappen"}
m:addItem{type="chooser", action="set_onoff", options={ on, off }, id="pr_auto_timer", value=num2onoff(C["pr_auto_timer"]), name="Auto Timer starten"}
m:addItem{type="chooser", action="set_yesno", options={ yes, no }, id="force_standby", value=num2yesno(C["force_standby"]), name="Standby"}
m:addItem{
type = "chooser",
action = "set_force_shutdown",
options = descs_force_shutdown,
id = "force_shutdown",
value = get_desc_from_table(table_force_shutdown, C["force_shutdown"]),
name = "Shutdown oder Reboot"
}
m:exec()

BIN
archive-sources/EPGscan/EPGscan_setup_hint.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 694 B

12
make/plugins.mk

@ -176,11 +176,13 @@ $(BIN)/vinfo: $(BIN)
$(TARGET)-gcc $(TARGET_CFLAGS) -o $@ vinfo.c md5.c
EPGscan: $(LIBPLUGINS) $(VARCONFIG)
install -m755 $(SOURCES)/EPGscan/*.sh $(LIBPLUGINS)/
install -m755 $(SOURCES)/EPGscan/*.lua $(LIBPLUGINS)/
install -m644 $(SOURCES)/EPGscan/*.cfg $(LIBPLUGINS)/
install -m644 $(SOURCES)/EPGscan/*_hint.png $(LIBPLUGINS)/
install -m644 $(SOURCES)/EPGscan/*.conf $(VARCONFIG)/
install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@.sh $(LIBPLUGINS)/
install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@.cfg $(LIBPLUGINS)/
install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@_hint.png $(LIBPLUGINS)/
install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@.conf $(VARCONFIG)/
install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@_setup.lua $(LIBPLUGINS)/
install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@_setup.cfg $(LIBPLUGINS)/
install -m644 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-lua/plugins/$@/$@_setup_hint.png $(LIBPLUGINS)/
pr-auto-timer: $(LIBPLUGINS) $(VARCONFIG)
install -m755 $(SOURCE_DIR)/$(NI_NEUTRINO-PLUGINS)/scripts-sh/plugins/$@/auto-record-cleaner $(LIBPLUGINS)/

Loading…
Cancel
Save