Compare commits

..

7 commits

Author SHA1 Message Date
Martin Gansser
6c4e352bed Update to new github address
Update to 1.2.8
2022-08-04 11:54:56 +02:00
Martin Gansser
ad4594e978 A Update to 1.2.7 2022-04-30 16:29:31 +02:00
Martin Gansser
8411849c8a Update to 1.2.6 2022-02-12 18:58:08 +01:00
Martin Gansser
ea7f73e1f5 Changing python to python3 in Make.config 2022-01-28 16:09:57 +01:00
Martin Gansser
78e552e292 Merge branch 'rawhide' into f35 2022-01-04 09:51:35 +01:00
Martin Gansser
e83a39f685 Merge branch 'rawhide' into f35 2022-01-03 08:51:49 +01:00
Martin Gansser
1963202853 Update to 1.2.0 2021-12-31 12:17:28 +01:00
4 changed files with 13 additions and 309 deletions

7
.gitignore vendored
View file

@ -94,10 +94,3 @@
/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-epg2vdr-1.2.8.tar.gz) = 58eadf290191204c22828ab3b3c52523c992e01c12546ed2a8f20ac2d690811c5165d52c2b6e6ec0ee214ba65c0d4aa7536ee50d0c5d36c974b46fd29ca8da64

View file

@ -1,27 +1,23 @@
# 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
# version we want build against
%global vdr_version 2.4.0
%if 0%{?fedora} >= 36
%global vdr_version 2.6.1
%endif
%if 0%{?fedora} == 35
%global vdr_version 2.4.7
%endif
Name: vdr-epg2vdr
Version: 1.2.17
Release: 17%{?dist}
Version: 1.2.8
Release: 1%{?dist}
Summary: A plugin to retrieve EPG data from a mysql database into VDR
License: GPL-1.0-or-later
License: GPL+
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
@ -48,6 +44,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,133 +66,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

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);
}