{"id":23170355,"url":"https://github.com/kguzek/guzek-uk-api","last_synced_at":"2025-12-30T23:08:18.500Z","repository":{"id":268581710,"uuid":"904824447","full_name":"kguzek/guzek-uk-api","owner":"kguzek","description":"A RESTful API for the Guzek UK website.","archived":false,"fork":false,"pushed_at":"2025-02-07T16:07:08.000Z","size":1625,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T16:35:24.227Z","etag":null,"topics":["api","api-rest","content-management-system","episode-tracker","express","mariadb","mariadb-database","mysql","mysql-database","node","node-js-express","nodejs","rest-api","server","tv-show-organiser","tv-shows","video-streaming"],"latest_commit_sha":null,"homepage":"https://api.guzek.uk/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kguzek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-17T16:10:49.000Z","updated_at":"2025-02-07T16:07:12.000Z","dependencies_parsed_at":"2024-12-17T17:28:48.611Z","dependency_job_id":"c73ce91f-7b06-4bcf-b7cd-fcdcd0aa75be","html_url":"https://github.com/kguzek/guzek-uk-api","commit_stats":null,"previous_names":["kguzek/guzek-uk-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kguzek%2Fguzek-uk-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kguzek%2Fguzek-uk-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kguzek%2Fguzek-uk-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kguzek%2Fguzek-uk-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kguzek","download_url":"https://codeload.github.com/kguzek/guzek-uk-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238079258,"owners_count":19412820,"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":["api","api-rest","content-management-system","episode-tracker","express","mariadb","mariadb-database","mysql","mysql-database","node","node-js-express","nodejs","rest-api","server","tv-show-organiser","tv-shows","video-streaming"],"created_at":"2024-12-18T04:12:45.368Z","updated_at":"2025-10-25T04:31:05.640Z","avatar_url":"https://github.com/kguzek.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Guzek UK API\n\n## DEPRECATION NOTICE 2024-03-10\n\nGuzek UK API was made obsolete with the [integration of PayloadCMS](https://github.com/kguzek/guzek-uk-website/pull/18) into the Guzek UK website. This repository no longer serves any use.\n\n## Intro\n\nThis repository contains the source code for the [Guzek UK API](https://api.guzek.uk/), which is used to power the [Guzek UK Website](https://www.guzek.uk/) -- my personal homepage. It has general website-related routes, such as page content for my custom-made content management system, the entire backend of [LiveSeries](https://www.guzek.uk/liveseries), a public torrent indexer and scraper, and much more.\n\n## API\n\nThis repository contains only the necessary lightweight public-facing APIs. It used to contain user authentication, but that has been moved to a [separate server](https://github.com/kguzek/guzek-uk-auth-server).\n\nFun fact: this API's first implementation was as a JSON file serving as the database, and raw Node.JS http server code. It's now a MariaDB database operated by [Sequelize](https://sequelize.org/), an ORM for JS/TS -- yes, it's still based on Node.JS.\n\n## Routes\n\nBelow is a list of accessible API routes, all of which use a base of [https://api.guzek.uk](https://api.guzek.uk/).\n\n### GET `/pages`\n\nPermissions: `public`\n\nReturns an array of pages to be displayed in the website navbar.\n\nParameters:\n\n- `lang` (required): `EN` or `PL` -- the language of the page titles. Can also be provided in cookies instead.\n\n### GET `/pages/{pageId}`\n\nReturns the HTML body content for that page, if it exists. Parameters same as for GET `/pages`.\n\n### GET `/updated`\n\nPermissions: `public`\n\nReturns a dictionary of endpoint-timestamp pairs. For each endpoint, the UNIX timestamp represents the last modification date of any resource behind that API endpoint.\n\nIt ignores the `/logs` endpoint as well as itself (`/updated`); i.e. these endpoints are not present in the response body.\n\n### `/logs`\n\nPermissions: `admin only`\n\nAll sub-endpoints return an object containing a `date` field and a `logs` field, where `logs` is an array of JSON-formatted log entries.\n\n#### GET `/logs/{date}`\n\nReturns all logs (except for error-level logs) made on the specified date. The date must be specified as a string in such a way that JavaScript's `new Date()` constructor can parse it. The `date` field is set to the date in ISO 8601 format.\n\n#### GET `/logs/error`\n\nReturns all logs ever made with level `error`. The `date` field is set to `\"error\"`.\n\n### `/liveseries`\n\nThis parent endpoint is shared by the [LiveSeries decentralised server](https://github.com/kguzek/guzek-uk-liveseries-server).\n\n#### GET `/liveseries/watched-episodes`\n\nPermissions: `admin only`\n\nGet all watched episode data stored in the database.\n\n##### GET `/liveseries/watched-episodes/personal`\n\nPermissions: `authenticated only`\n\nGet all of the logged in user's watched episodes.\n\n###### PUT `/liveseries/watched-episodes/personal/{showId}/{season}`\n\nSets the logged in user's watched episodes in the given season of the given TV show, where the ID is the numerical ID from the [Episodate API](https://www.episodate.com/api).\n\n#### GET `/liveseries/shows`\n\nPermissions: `admin only`\n\nReads all user's liked and subscribed shows.\n\n##### GET `/liveseries/shows/personal`\n\nPermissions: `authenticated only`\n\nReads the logged in user's liked and subscribed shows, as arrays of show IDs.\n\n###### POST|DELETE `/liveseries/shows/personal/{type}/{showId}`\n\nAdds or removes (depending on request method) the show ID from the given list specified by `type`, where `type` is either `liked` or `subscribed`.\n\n### GET|POST `/tu-lalem`\n\nPermissions: `authenticated only`\n\nReads all Tu Lałem entries or creates a new one, depending on the request method. New entries must be JSON objects with key `coordinates` and value in the form of a two-value array (geographical coordinates).\n\nTu Lałem is a currently-private dormant project, which may or may not be revisited in the future.\n\n## Usage\n\nThis repository isn't really meant to be cloned or downloaded by anyone, it's just where I keep the source code so I can develop from different locations. If you read this README, say hi!\n\n## Copyright\n\nCopyright © 2021-2025 by Konrad Guzek\n\nThis file is part of Guzek UK API.\n\nGuzek UK API is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nGuzek UK API is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License along with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkguzek%2Fguzek-uk-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkguzek%2Fguzek-uk-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkguzek%2Fguzek-uk-api/lists"}