{"id":26232559,"url":"https://github.com/bulletmark/epgpurge","last_synced_at":"2026-01-30T15:30:52.064Z","repository":{"id":2092355,"uuid":"3032647","full_name":"bulletmark/EPGPurge","owner":"bulletmark","description":"A Topfield TMS PVR TAP to purge old EPG entries.","archived":false,"fork":false,"pushed_at":"2022-04-29T04:57:00.000Z","size":24,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-09T08:17:27.465Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bulletmark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-12-22T08:22:01.000Z","updated_at":"2022-04-28T22:21:41.000Z","dependencies_parsed_at":"2022-07-14T20:00:38.460Z","dependency_job_id":null,"html_url":"https://github.com/bulletmark/EPGPurge","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2FEPGPurge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2FEPGPurge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2FEPGPurge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2FEPGPurge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bulletmark","download_url":"https://codeload.github.com/bulletmark/EPGPurge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243318778,"owners_count":20272136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-13T00:37:29.901Z","updated_at":"2026-01-30T15:30:51.721Z","avatar_url":"https://github.com/bulletmark.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EPGPurge TAP\n\n## Introduction\n\nThis is a small TAP program to purge old EPG entries on a Topfield TMS PVR.\n\nIt fixes the following problems in the TMS PVR:\n\n1. After each minute boundary, the tap purges the EPG of all program\n   entries older than the current + previous program on each channel and\n   also ensures the current program is updated to match the current time\n   of day. This stops old program info being displayed on the info\n   display, and old program info being stored in recordings.\n\n2. Stops the guide display from jumping back a large period as you move\n   the cursor up or down the display.\n\nTo install the TAP, upload it to the `ProgramFiles/AutoStart` folder on\nyour PVR using ftp, or copy it via a USB flash stick. There is no\nconfiguration or user interaction required for this tap. It merely runs\nin the background and fixes these issues. Ensure you delete the\nFixCurrent tap if you had it previously installed, as this tap replaces\nit.\n\nI developed this on my Australian TF7100HDPlus model PVR but it should work on\nat least all other Australian TMS models, i.e. TRF-2400, TRF-2460, TRF7170, and\nTRF7160. I have tested the app using both ICE and FTA EPG data.\n\nRead the [latest\ndocumentation](https://markb.bullet-systems.net/epgpurge.html), [source\ncode](https://github.com/bulletmark/EPGPurge), or download the [latest\nbuilt TAP](https://markb.bullet-systems.net/taps/EPGPurge/EPGPurge.zip).\n\n## Author\n\n- User [bulletmark](https://oztoppy.forumchitchat.com/profile/4648279)\n  on the [oztoppy Australia Forum](https://oztoppy.forumchitchat.com).\n- User [bulletmark](https://github.com/bulletmark) on [github](https://github.com/).\n\n## License\n\nCopyright (C) 2012 Mark Blakeney. This program is distributed under the\nterms of the GNU General Public License.\n\nThis program is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation, either version 3 of the License, or any later\nversion.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General\nPublic License](https://www.gnu.org/licenses/) for more details.\n\n## Change History\n\n**v1.0:**\n\nOriginal version for guide display, based on [this\ntap](https://sourceforge.net/projects/topfieldtapmisc/).\n\n**v1.1-MGB:**\n\nImported to github and added the following:\n\n1. Also forces EPG purge after returning from playback or timeslip to\n   realtime TV.\n\n2. Made code slightly more efficient and made some minor cleanups.\n\n3. Fixed typo bug in SUBSTATE check.\n\n4. Fixed end time range bug. Programs start on the start time and end\n   just before the end time, i.e. range = [start, end).\n\n**V2.0 - 2011-12-22:**\n\nRewrote and renamed my version EPGPurge to add the\nfollowing enhancements:\n\n1. Deletes old EPG entries rather than marks them as expired. There is\n   no need for old EPG data anyhow and deleting them subsequently makes\n   the processing much more efficient as we then only have to process\n   typically 2 events per channel each run (previous + current) rather\n   than potentially hundreds of old events.\n\n2. The FixCurrent tap converted each programs start and end date+times\n   into an internal time number biased against an arbitary epoch.\n   However this is unnecessary as we only need to compare date+times\n   against current date+time and since the MJDHM format embeds the date\n   and time in significant digit order that means we can compare them\n   directly and thus save significant CPU overhead avoiding the time\n   conversions.\n\n3. Runs just after each minute boundary to purge and adjust the EPG.\n   Since the TAP is now much more efficient (running typically only\n   2 iterations per channel as per above comment) we can run it each\n   minute and catch all \"edge\" conditions where EPG data is otherwise\n   sometimes seen to be out of date.\n\n**V2.1 - 2012-04-13:**\n\nAdd check for no EPG data.\n\n**V2.2 - 2012-04-29:**\n\n Always runs after each minute boundary now.  Runs in all modes, to always\n ensure that the EPG is updated. Apart from the other problems addressed before\n this version, this should also now ensure that recordings capture the correct\n program info data.\n\n**v2.2.1 - 2012-06-20:**\n\nOnly do EPG purge on IDLE and KEY events.  I do not know of any problems before\nthis but FireBird recommends avoiding processing on the other TAP events so may\nas well be sure.\n\n**v2.3 - 2013-02-18:**\n\nAdded TAPID function to appear in TMSCommander tap list.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletmark%2Fepgpurge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbulletmark%2Fepgpurge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletmark%2Fepgpurge/lists"}