{"id":19856551,"url":"https://github.com/gavinlyonsrepo/tv_viewer","last_synced_at":"2025-05-02T01:31:35.504Z","repository":{"id":62585631,"uuid":"111615351","full_name":"gavinlyonsrepo/tv_viewer","owner":"gavinlyonsrepo","description":"GUI to view tv program details using TV maze application  programming interface. Written in python 3 and PyQt 5, it also stores  user favourites in an SQLite database.  It uses python module pytvmaze to interface with API","archived":false,"fork":false,"pushed_at":"2023-12-28T16:23:01.000Z","size":673,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T20:47:55.632Z","etag":null,"topics":["communication","database","gui","prettytable","pyqt5","python","python3","pytvmaze","sqlite-database","television","television-series","tv","tv-maze","tv-series","tv-shows","tv-viewer","tvmaze","tvmaze-api","tvmazeapi","tvshows"],"latest_commit_sha":null,"homepage":"https://gavinlyonsrepo.github.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gavinlyonsrepo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-11-22T00:02:41.000Z","updated_at":"2022-05-17T09:20:34.000Z","dependencies_parsed_at":"2024-01-06T21:46:01.758Z","dependency_job_id":null,"html_url":"https://github.com/gavinlyonsrepo/tv_viewer","commit_stats":{"total_commits":34,"total_committers":1,"mean_commits":34.0,"dds":0.0,"last_synced_commit":"c3195fb0b4a0f0ca5046a301cea26e7f7c527528"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2Ftv_viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2Ftv_viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2Ftv_viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gavinlyonsrepo%2Ftv_viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gavinlyonsrepo","download_url":"https://codeload.github.com/gavinlyonsrepo/tv_viewer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251969428,"owners_count":21673202,"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":["communication","database","gui","prettytable","pyqt5","python","python3","pytvmaze","sqlite-database","television","television-series","tv","tv-maze","tv-series","tv-shows","tv-viewer","tvmaze","tvmaze-api","tvmazeapi","tvshows"],"created_at":"2024-11-12T14:15:50.994Z","updated_at":"2025-05-02T01:31:34.400Z","avatar_url":"https://github.com/gavinlyonsrepo.png","language":"Python","funding_links":["https://www.paypal.com/paypalme/whitelight976"],"categories":[],"sub_categories":[],"readme":"[![Website](https://img.shields.io/badge/Website-Link-blue.svg)](https://gavinlyonsrepo.github.io/)  [![Rss](https://img.shields.io/badge/Subscribe-RSS-yellow.svg)](https://gavinlyonsrepo.github.io//feed.xml)  [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/paypalme/whitelight976)\n\n\n## Overview\n\n* Name: tv_viewer\n* Title : Graphical user interface to view TV show details using the TV maze API \n* Description: \n\nGUI to view details  of tv programs using TV maze application \nprogramming interface. Written in python 3 and PyQt 5, it also stores \nuser favourites in an SQLite database. \nIt uses python module pytvmaze to interface with API \nand python module prettytable to help display results.\n\n* [TV maze API](http://www.tvmaze.com/api)\n\n* Author: Gavin Lyons \n* Upstream repository: [Github](https://github.com/gavinlyonsrepo/tv_viewer)\n* Developed and tested on Linux as a Linux App. \n\n## Table of contents\n\n  * [Overview](#overview)\n  * [Table of contents](#table-of-contents)\n  * [Installation and Setup](#installation-and-setup)\n  * [Usage](#usage)\n  * [File system](#file-system)\n\t* [Log file](#log-file)\n\t* [Configuration file](#configuration-file)  \n  * [Dependencies](#dependencies)\n  * [Features](#features)\n  * [Screenshot](#screenshot)\n\n## Installation and Setup\n\nLatest version 2.3. \n\n**PyPi \u0026 pip , pipx**\n\nThe program is present in python package index, Pypi.\nInstall using *pip* or *pipx* to the location or environment of your choice.\nPackage name = tv-viewer\n\n**Arch based Linux distribution**\n\nIf you are using an arch Linux based system,\nthe program is packaged in the AUR as 'tv_viewer'.\n\n**Manually install from github**\n\nThe package is also archived on github and can be manually download and installed \nvia python and setup.py\n\n```sh\ncurl -sL https://github.com/gavinlyonsrepo/tv_viewer/archive/2.3.tar.gz | tar xz\ncd tv_viewer-2.3\npython3 setup.py build \npython3 setup.py install --user\n```\n\n## Usage\n\ntype below in terminal  to launch *or* select icon from Desktop app menus under Other( Linux only)\n\n```sh\ntv_viewer.py \n```\n\n## File system\n\n\n| File Path | Description |\n| ------ | ------ |\n| 'HOME'/.config/tv_viewer/fav.db | Favourite Database, created by program on startup |\n| 'HOME'/.config/tv_viewer/tvviewer.cfg | config file,  created by program on startup |\n| 'HOME'/.cache/tv_viewer/TVviewer_YYMMDD_HHMMSS.log | Log file Path can be adjusted in config |\n| 'HOME'/.local/share/icons/tv_viewer.png | icon, Linux only |\n| 'HOME'/.local/share/applications/tv_viewer.desktop | desktop entry, Linux only |\n| tv_viewer.py | main executable python script |\n| tv_qt_class.py | python module dealing with PyQt code |\n| tv_sqllite.py | python module dealing with SQLite code |\n| tv_api_work.py | python module dealing with Pytvmaze code |\n| tv_logger_conf.py | python module dealing with logging and config file |\n\nWhen the program starts for first time it creates a blank database and a config file  \nand  (if installed by pip) downloads from github using curl the two files for the desktop entry and icon.\nAll files are placed in 'HOME'/.local/* . On Linux systems 'HOME' is defined by os.environ['HOME']\non windows os.environ['HOMEPATH']\n\n### Log file\n\nA debug log file to store information outputted by program. \n\n```sh\n2017-12-04 15:03:32:INFO:__main__:  Main Loop Start\n2017-12-04 15:04:42:WARNING:tv_api_work.tv_api_work:No next episode data available\n```\nExceptions are generated by software as a result of missing and incomplete \nAPI data by TV maze for some shows. These are caught and outputted \nto log file and won't interfere with running of program. \nThe software should catch most issues \nand output them there. Also displayed here are various other debug information.\nLogging can be switched on and off in and the output path  can be changed.\n\n### Configuration file\n\n\nThe configuration file is created on startup and populated by default values\n\n| Setting  | Value |  Default | Note |\n| ------ | ------ | ----- | ----- |\n| loggingonoff | on or off | off | Toggles logging output |\n| logpath | File path to place log files | $HOME/.cache/tv_viewer/ | |\n| networkcheckonoff | or or off | on | toggles network test  uses ping |\n| networkurl | url | www.tvmaze.com | url to test by network test  |\n\n## Dependencies\n\n| Dependencies | Usage |  URL |\n| ------ | ------ | ----- |\n| prettytable 3.3.0 | Used to format Data into tables | [ Link ](https://github.com/jazzband/prettytable) |\n| pytvmaze 2.0.8 | Python interface to TV Maze API | [link](https://github.com/srob650/pytvmaze) |\n| pyqt5 5.15.6 | GUI toolkit | [Link](http://pyqt.sourceforge.net/Docs/PyQt5/) |\n\n\n## Features\n\nFrom the menu bar a user can select about and exit options.\nFrom here they can also view latest log file and configuration file contents.\nThe TV maze API associates a unique ID with each TV show called the Maze_ID.\nOn the main screen the user is prompted to enter name of show in input box.\nThe software then returns a list of television shows based on the input.\nThe user can then select the show by row number and is presented with \nvarious details of it. From here they select more detailed information \nby selecting one of the radio buttons and pressing details.\nOptions include overview, seasons, cast, \ncrew, episodes and more miscellaneous information. \nThey can also view and/or toggle the favourite status of  show by \npressing delete or add favourite button. \n\nThe software also includes a favourite function where user \ncan store favourites TV shows in a database.\nThe database has one table show and two fields name and number.\nthe maze_ID of the show is stored at number.\nThe contents of the database can be displayed by pressing Favourites  button.\nFavourites records can be added by entering a maze_id in input box \nand pressing add favourite button, records can be deleted by adding a maze_id \nof show in database and pressing delete favourite button.\nThe favourite section will also show next episode date \nand days till next episode. You also access the tv show details screen from here \nby adding a maze_id and pressing search.\nA reset and exit button is also available. \nThere is a status light with 3 colours\n\n1. Green : ready \n2. Yellow : busy , accessing network or files\n3. Red : network check failed, The network check is carried out at start up and when certain buttons fail it can turned off.\n\n## Screenshot\n\n\nThere are screenshots in this repository in documentation folder. \n\n![ image ](https://github.com/gavinlyonsrepo/tv_viewer/blob/master/Documentation/screenshots/tv_show_info_screen.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgavinlyonsrepo%2Ftv_viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgavinlyonsrepo%2Ftv_viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgavinlyonsrepo%2Ftv_viewer/lists"}