Compare commits
51 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21219f929e | ||
|
|
90486c26ee | ||
|
|
89e65a9d3b | ||
|
|
fe3ff33d39 | ||
|
|
541c4629b9 | ||
|
|
74bf093cef | ||
|
|
545341d20b | ||
|
|
4a4b9be66c | ||
|
|
d3378286e0 | ||
|
|
97d9b9d663 | ||
|
|
70977b51fa | ||
|
|
9bc1b1bb81 | ||
|
|
6dd7d5938c | ||
|
|
6433dfdbbe | ||
|
|
87b77dd7fd | ||
|
|
4e4f1b35dd | ||
|
|
688cc8b74e | ||
|
|
f9ce85994c | ||
|
|
806a0705e6 | ||
|
|
61cc86143b | ||
|
|
e2c5ee0d08 | ||
|
|
3315f51832 | ||
|
|
09b0fdc5ac | ||
|
|
881d3eafe1 | ||
|
|
747a2991b2 | ||
|
|
30ad20ec44 | ||
|
|
5c8a3165ea | ||
|
|
81220d5fe4 | ||
|
|
1596d7e4eb | ||
|
|
0ba2a95530 | ||
|
|
3d28c7a131 | ||
|
|
5b280c277a | ||
|
|
11ff9fc14e | ||
|
|
c79c759c3f | ||
|
|
ca8e3849e3 | ||
|
|
b17aa3cff3 | ||
|
|
b772019329 | ||
|
|
5c81b24512 | ||
|
|
7b7816a473 | ||
|
|
0e87160d7b | ||
|
|
0e1e18eb4d | ||
|
|
483888ec12 | ||
|
|
582888c206 | ||
|
|
715e235639 | ||
|
|
88d1a88ce3 | ||
|
|
d06f5a5a80 | ||
|
|
579c00fbc9 | ||
|
|
65f9239285 | ||
|
|
55a2c1586e | ||
|
|
7551c56dc3 | ||
|
|
5340596042 |
4 changed files with 329 additions and 9 deletions
9
.gitignore
vendored
9
.gitignore
vendored
|
|
@ -92,3 +92,12 @@
|
|||
/vdr-plugin-epg2vdr-1.2.3.tar.bz2
|
||||
/vdr-plugin-epg2vdr-1.2.5.tar.bz2
|
||||
/vdr-plugin-epg2vdr-1.2.6.tar.bz2
|
||||
/vdr-plugin-epg2vdr-1.2.7.tar.bz2
|
||||
/vdr-epg2vdr-1.2.8.tar.gz
|
||||
/vdr-epg2vdr-1.2.9.tar.gz
|
||||
/vdr-epg2vdr-1.2.12.tar.gz
|
||||
/vdr-epg2vdr-1.2.13.tar.gz
|
||||
/vdr-epg2vdr-1.2.14.tar.gz
|
||||
/vdr-epg2vdr-1.2.15.tar.gz
|
||||
/vdr-epg2vdr-1.2.16.tar.gz
|
||||
/vdr-epg2vdr-1.2.17.tar.gz
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (vdr-plugin-epg2vdr-1.2.6.tar.bz2) = f28803c560209b65f68293b70ae7a21c323cac8804af1d0f459a7e3e53ab1ac9dcfce78a741b77b07a2f3b53814f79d17160a923fec19dfc8dacad1843b939a5
|
||||
SHA512 (vdr-epg2vdr-1.2.17.tar.gz) = 56c56cc0b46584e4e326779ab3b685f11eca1f9492e9209bc9e7d85897b3aaf44010bc37d0558a78ae64d0d4e6795a58bdb2074a06e5f196ee2d4aac170c79eb
|
||||
|
|
|
|||
167
vdr-epg2vdr.spec
167
vdr-epg2vdr.spec
|
|
@ -1,14 +1,27 @@
|
|||
# Set vdr_version based on Fedora version
|
||||
# Default
|
||||
%global vdr_version 2.7.7
|
||||
|
||||
%if 0%{?fedora} == 43
|
||||
%global vdr_version 2.7.7
|
||||
%elif 0%{?fedora} == 44
|
||||
%global vdr_version 2.8.1
|
||||
%elif 0%{?fedora} > 44
|
||||
%global vdr_version 2.8.2
|
||||
%endif
|
||||
|
||||
Name: vdr-epg2vdr
|
||||
Version: 1.2.6
|
||||
Release: 1%{?dist}
|
||||
Version: 1.2.17
|
||||
Release: 17%{?dist}
|
||||
Summary: A plugin to retrieve EPG data from a mysql database into VDR
|
||||
|
||||
License: GPL+
|
||||
URL: http://projects.vdr-developer.org/git/vdr-plugin-epg2vdr.git
|
||||
Source0: https://projects.vdr-developer.org/git/vdr-plugin-epg2vdr.git/snapshot/vdr-plugin-epg2vdr-%{version}.tar.bz2
|
||||
License: GPL-1.0-or-later
|
||||
URL: https://github.com/horchi/vdr-plugin-epg2vdr
|
||||
Source0: %url/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gettext
|
||||
BuildRequires: sqlite-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: mariadb-connector-c-devel
|
||||
|
|
@ -19,7 +32,7 @@ BuildRequires: libxml2-devel
|
|||
BuildRequires: tinyxml2-devel
|
||||
BuildRequires: libjpeg-turbo-devel
|
||||
BuildRequires: imlib2-devel
|
||||
BuildRequires: vdr-devel >= 1.7.36
|
||||
BuildRequires: vdr-devel >= %{vdr_version}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: jansson-devel
|
||||
BuildRequires: libarchive-devel
|
||||
|
|
@ -35,8 +48,6 @@ was loaded from a mysql database.
|
|||
iconv -f iso-8859-1 -t utf-8 README > README.utf8 ; mv README.utf8 README
|
||||
# disable AUX patch
|
||||
sed -i -e 's|WITH_AUX_PATCH = 1|#WITH_AUX_PATCH = 1|' Make.config
|
||||
# use python3
|
||||
sed -i -e 's|PYTHON ?= python|PYTHON ?= python3|' Make.config
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
|
|
@ -57,6 +68,146 @@ chmod 0755 %{buildroot}/%{vdr_plugindir}/libvdr-*.so.%{vdr_apiversion}
|
|||
%{vdr_plugindir}/libvdr-*.so.%{vdr_apiversion}
|
||||
|
||||
%changelog
|
||||
* Wed Jul 22 2026 Python Maint <python-maint@redhat.com> - 1.2.17-17
|
||||
- Rebuilt for Python 3.15.0b4 ABI change
|
||||
|
||||
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.17-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
||||
|
||||
* Sat Jun 13 2026 Yaakov Selkowitz <yselkowi@redhat.com> - 1.2.17-15
|
||||
- Rebuilt for openssl 4.0
|
||||
|
||||
* Wed Jun 03 2026 Python Maint <python-maint@redhat.com> - 1.2.17-14
|
||||
- Rebuilt for Python 3.15
|
||||
|
||||
* Wed Jun 03 2026 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-13
|
||||
- Rebuilt for new VDR 2.8.2 API version 13
|
||||
|
||||
* Mon Mar 23 2026 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-12
|
||||
- Rebuilt for new VDR 2.8.1 API version 12
|
||||
|
||||
* Mon Feb 09 2026 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-11
|
||||
- Rebuilt for new VDR API version 2.7.9
|
||||
|
||||
* Mon Jan 26 2026 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-10
|
||||
- Rebuilt for new VDR API version 2.7.8
|
||||
|
||||
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.17-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Sat Aug 23 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 1.2.17-8
|
||||
- Rebuilt for tinyxml2 11.0.0
|
||||
|
||||
* Fri Jul 25 2025 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-7
|
||||
- Rebuilt for new VDR API version 2.7.7
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.17-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Sat Jun 21 2025 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-5
|
||||
- Rebuilt for new VDR API version 2.7.6
|
||||
|
||||
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 1.2.17-4
|
||||
- Rebuilt for Python 3.14
|
||||
|
||||
* Tue May 27 2025 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-3
|
||||
- Rebuilt for new VDR API version 2.7.5
|
||||
|
||||
* Fri Feb 28 2025 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-2
|
||||
- Rebuilt for new VDR API version 2.7.4
|
||||
|
||||
* Tue Feb 18 2025 Martin Gansser <martinkg@fedoraproject.org> - 1.2.17-1
|
||||
- Update to 1.2.17
|
||||
|
||||
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.16-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Mon Nov 11 2024 Dominik Mierzejewski <dominik@greysector.net> - 1.2.16-11
|
||||
- rebuild for tinyxml2
|
||||
|
||||
* Tue Oct 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1.2.16-10
|
||||
- Rebuild for Jansson 2.14
|
||||
(https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/)
|
||||
|
||||
* Wed Oct 09 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.16-9
|
||||
- Rebuilt for new VDR API version 2.7.2
|
||||
- Add %%{name}-EventID.diff for vdr 2.7.x
|
||||
|
||||
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.16-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Mon Jul 15 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.16-7
|
||||
- Rebuilt for new VDR API version 2.6.9
|
||||
|
||||
* Thu Jul 11 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.16-6
|
||||
- Rebuilt for new VDR API version 2.6.8
|
||||
|
||||
* Mon Jun 17 2024 Miroslav Suchý <msuchy@redhat.com> - 1.2.16-5
|
||||
- convert license to SPDX
|
||||
|
||||
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 1.2.16-4
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Fri Apr 12 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.16-3
|
||||
- Rebuilt for new VDR API version
|
||||
|
||||
* Fri Jan 26 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.16-2
|
||||
- Rebuilt for new VDR API version
|
||||
|
||||
* Sun Jan 21 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.16-1
|
||||
- Update to 1.2.16
|
||||
|
||||
* Fri Jan 05 2024 Martin Gansser <martinkg@fedoraproject.org> - 1.2.15-2
|
||||
- Rebuilt for new VDR API versionA
|
||||
- Add BR gettext for rawhide
|
||||
|
||||
* Tue Oct 17 2023 Martin Gansser <martinkg@fedoraproject.org> - 1.2.15-1
|
||||
- Update to 1.2.15
|
||||
|
||||
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.14-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1.2.14-2
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Wed Feb 15 2023 Martin Gansser <martinkg@fedoraproject.org> - 1.2.14-1
|
||||
- Update to 1.2.14
|
||||
|
||||
* Sun Feb 12 2023 Martin Gansser <martinkg@fedoraproject.org> - 1.2.13-1
|
||||
- Update to 1.2.13
|
||||
|
||||
* Wed Jan 25 2023 Martin Gansser <martinkg@fedoraproject.org> - 1.2.12-1
|
||||
- Update to 1.2.12
|
||||
|
||||
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.9-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Sat Dec 24 2022 Martin Gansser <martinkg@fedoraproject.org> - 1.2.9-1
|
||||
- Update to 1.2.9
|
||||
- Add vps.epg2vdr.patch
|
||||
|
||||
* Wed Dec 14 2022 Martin Gansser <martinkg@fedoraproject.org> - 1.2.8-4
|
||||
- Rebuilt for new VDR API version
|
||||
|
||||
* Thu Dec 01 2022 Martin Gansser <martinkg@fedoraproject.org> - 1.2.8-3
|
||||
- Rebuilt for new VDR API version
|
||||
|
||||
* Sun Sep 25 2022 Rich Mattes <richmattes@gmail.com> - 1.2.8-2
|
||||
- Rebuild for tinyxml2-9.0.0
|
||||
|
||||
* Thu Aug 04 2022 Martin Gansser <martinkg@fedoraproject.org> - 1.2.8-1
|
||||
- Update to new github address
|
||||
- Update to 1.2.8
|
||||
|
||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.7-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.2.7-2
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Sat Apr 30 2022 Martin Gansser <martinkg@fedoraproject.org> - 1.2.7-1
|
||||
- Update to 1.2.7
|
||||
|
||||
* Sat Feb 12 2022 Martin Gansser <martinkg@fedoraproject.org> - 1.2.6-1
|
||||
- Update to 1.2.6
|
||||
|
||||
|
|
|
|||
160
vps.epg2vdr.patch
Normal file
160
vps.epg2vdr.patch
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
Index: vdr-plugin-epg2vdr-1.2.9/handler.h
|
||||
===================================================================
|
||||
--- vdr-plugin-epg2vdr-1.2.9.orig/handler.h 2022-12-22 09:02:41.104757343 +0100
|
||||
+++ vdr-plugin-epg2vdr-1.2.9/handler.h 2022-12-24 11:45:58.543278919 +0100
|
||||
@@ -409,6 +409,7 @@
|
||||
|
||||
virtual bool HandledExternally(const cChannel* Channel)
|
||||
{
|
||||
+ handledByUs = false;
|
||||
static int reportFirst = yes;
|
||||
|
||||
LogDuration l("HandledExternally", 5);
|
||||
@@ -430,8 +431,10 @@
|
||||
|
||||
// dbConnected() here okay -> if not connected we return false an the vdr will handle the event?!?
|
||||
|
||||
- if (dbConnected() && getExternalIdOfChannel(&channelId) != "")
|
||||
+ if (dbConnected() && getExternalIdOfChannel(&channelId) != "") {
|
||||
+ handledByUs = true;
|
||||
return true;
|
||||
+ }
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -453,6 +456,53 @@
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
+ // SetEventID
|
||||
+ //***************************************************************************
|
||||
+
|
||||
+ virtual bool SetEventID(cEvent *Event, tEventID EventID) {
|
||||
+// do we handle this channel?
|
||||
+ if (!handledByUs) return false;
|
||||
+ return true;
|
||||
+// our use IDs don't change
|
||||
+/*
|
||||
+
|
||||
+ eventsDb->clear();
|
||||
+ eventsDb->setValue("CHANNELID", channelId.ToString());
|
||||
+ eventsDb->setBigintValue("EVENTID", (long)EventID);
|
||||
+
|
||||
+ if (eventsDb->find()) {
|
||||
+ tEventID useID = eventsDb->getIntValue("USEID");
|
||||
+ Event->SetEventID(useID);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+*/
|
||||
+ }
|
||||
+
|
||||
+ //***************************************************************************
|
||||
+ // Get event
|
||||
+ //***************************************************************************
|
||||
+
|
||||
+ virtual bool GetEvent(cEvent **event, const cChannel *channel, const cSchedule *schedule, const SI::EIT::Event *siEitEvent, uchar tableID) {
|
||||
+// do we handle this channel?
|
||||
+ if (!handledByUs) return false;
|
||||
+ *event = NULL;
|
||||
+
|
||||
+ if (tableID == 0x4E || (tableID & 0xF0) == 0x50) {
|
||||
+ eventsDb->clear();
|
||||
+ eventsDb->setValue("CHANNELID", channelId.ToString());
|
||||
+ eventsDb->setBigintValue("EVENTID", (long)siEitEvent->getEventId());
|
||||
+
|
||||
+ if (eventsDb->find()) {
|
||||
+ tEventID useID = eventsDb->getIntValue("USEID");
|
||||
+ *event = const_cast<cEvent *>(schedule->GetEventById(useID));
|
||||
+ }
|
||||
+ } else
|
||||
+ *event = const_cast<cEvent *>(schedule->GetEventByTime(siEitEvent->getStartTime() ));
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ //***************************************************************************
|
||||
// Is Update
|
||||
//***************************************************************************
|
||||
|
||||
@@ -746,7 +796,7 @@
|
||||
|
||||
selectEventByStarttime->freeResult();
|
||||
|
||||
- return true;
|
||||
+ return false; // so other plugins can still get the event
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
@@ -876,6 +926,7 @@
|
||||
std::map<std::string,MemMap> evtMemList;
|
||||
std::map<std::string,std::string> externIdMap;
|
||||
tChannelID channelId;
|
||||
+ bool handledByUs; // == EpgHandlers.HandledExternally(Channel);
|
||||
|
||||
int initialized;
|
||||
cDbConnection* connection;
|
||||
@@ -980,6 +1031,18 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
+ virtual bool SetEventID(cEvent *Event, tEventID EventID)
|
||||
+ {
|
||||
+ cEpgHandlerInstance* h = getHandler();
|
||||
+ return h->SetEventID(Event, EventID);
|
||||
+ }
|
||||
+
|
||||
+ virtual bool GetEvent(cEvent **event, const cChannel *channel, const cSchedule *schedule, const SI::EIT::Event *siEitEvent, uchar tableID)
|
||||
+ {
|
||||
+ cEpgHandlerInstance* h = getHandler();
|
||||
+ return h->GetEvent(event, channel, schedule, siEitEvent, tableID);
|
||||
+ }
|
||||
+
|
||||
virtual bool IsUpdate(tEventID EventID, time_t StartTime, uchar TableID, uchar Version)
|
||||
{
|
||||
|
||||
Index: vdr-plugin-epg2vdr-1.2.9/update.c
|
||||
===================================================================
|
||||
--- vdr-plugin-epg2vdr-1.2.9.orig/update.c 2022-12-22 07:32:05.000000000 +0100
|
||||
+++ vdr-plugin-epg2vdr-1.2.9/update.c 2022-12-22 09:51:26.419974590 +0100
|
||||
@@ -1431,6 +1431,18 @@
|
||||
}
|
||||
|
||||
//***************************************************************************
|
||||
+// Return true if any timer is in VPS margin
|
||||
+//***************************************************************************
|
||||
+
|
||||
+bool timerInVpsMargin()
|
||||
+{
|
||||
+ LOCK_TIMERS_WRITE;
|
||||
+ for (cTimer* timer = Timers->First(); timer; timer = Timers->Next(timer))
|
||||
+ if (timer->InVpsMargin() ) return true;
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+//***************************************************************************
|
||||
// Clear Epg
|
||||
//***************************************************************************
|
||||
|
||||
@@ -1520,6 +1532,10 @@
|
||||
if (fullreload)
|
||||
{
|
||||
tell(1, "Removing all events from epg");
|
||||
+ if (timerInVpsMargin() ) {
|
||||
+ tell(1, "Abort, as there is a timer in VPS margin");
|
||||
+ return fail;
|
||||
+ }
|
||||
|
||||
clearEpg();
|
||||
|
||||
@@ -1665,8 +1681,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (timer)
|
||||
+ if (timer) {
|
||||
+ if (timer->InVpsMargin() ) continue; // ignore events in vps margin, especially don't set the timer to no event.
|
||||
timer->SetEvent(0);
|
||||
+ }
|
||||
|
||||
s->DelEvent((cEvent*)event);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue