Compare commits

..

4 commits

Author SHA1 Message Date
Martin Gansser
9d7bbf56e5 Update to 1.2.6 2022-02-12 18:59:08 +01:00
Martin Gansser
8147e4ac51 Merge branch 'rawhide' into f34 2022-01-04 09:52:06 +01:00
Martin Gansser
9328520be4 Merge branch 'rawhide' into f34 2022-01-03 08:52:40 +01:00
Martin Gansser
9bd0dad971 Update to 1.2.0 2021-12-31 12:18:34 +01:00
4 changed files with 9 additions and 329 deletions

9
.gitignore vendored
View file

@ -92,12 +92,3 @@
/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

View file

@ -1 +1 @@
SHA512 (vdr-epg2vdr-1.2.17.tar.gz) = 56c56cc0b46584e4e326779ab3b685f11eca1f9492e9209bc9e7d85897b3aaf44010bc37d0558a78ae64d0d4e6795a58bdb2074a06e5f196ee2d4aac170c79eb
SHA512 (vdr-plugin-epg2vdr-1.2.6.tar.bz2) = f28803c560209b65f68293b70ae7a21c323cac8804af1d0f459a7e3e53ab1ac9dcfce78a741b77b07a2f3b53814f79d17160a923fec19dfc8dacad1843b939a5

View file

@ -1,27 +1,14 @@
# 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.17
Release: 17%{?dist}
Version: 1.2.6
Release: 1%{?dist}
Summary: A plugin to retrieve EPG data from a mysql database into VDR
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
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
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: sqlite-devel
BuildRequires: openssl-devel
BuildRequires: mariadb-connector-c-devel
@ -32,7 +19,7 @@ BuildRequires: libxml2-devel
BuildRequires: tinyxml2-devel
BuildRequires: libjpeg-turbo-devel
BuildRequires: imlib2-devel
BuildRequires: vdr-devel >= %{vdr_version}
BuildRequires: vdr-devel >= 1.7.36
BuildRequires: python3-devel
BuildRequires: jansson-devel
BuildRequires: libarchive-devel
@ -48,6 +35,8 @@ 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}"
@ -68,146 +57,6 @@ 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

View file

@ -1,160 +0,0 @@
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);
}