{"id":19532390,"url":"https://github.com/esimkowitz/pocket-reader","last_synced_at":"2026-04-17T02:32:15.543Z","repository":{"id":159503233,"uuid":"100751497","full_name":"esimkowitz/pocket-reader","owner":"esimkowitz","description":"Read Pocket articles with Alexa","archived":false,"fork":false,"pushed_at":"2017-11-01T06:39:15.000Z","size":118,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-02T08:26:34.105Z","etag":null,"topics":["alexa","amazon","article","javascript","lambda","natural-language-processing","nodejs","pocket","voice"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esimkowitz.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2017-08-18T21:29:30.000Z","updated_at":"2023-03-04T06:12:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"d03ecfbf-d120-411f-91da-7ce02c1d1c93","html_url":"https://github.com/esimkowitz/pocket-reader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/esimkowitz/pocket-reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimkowitz%2Fpocket-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimkowitz%2Fpocket-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimkowitz%2Fpocket-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimkowitz%2Fpocket-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esimkowitz","download_url":"https://codeload.github.com/esimkowitz/pocket-reader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimkowitz%2Fpocket-reader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31912374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["alexa","amazon","article","javascript","lambda","natural-language-processing","nodejs","pocket","voice"],"created_at":"2024-11-11T01:50:45.052Z","updated_at":"2026-04-17T02:32:15.474Z","avatar_url":"https://github.com/esimkowitz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Article Reader\n\n_Read Pocket articles with Alexa_\n\n## TODO\n\n1. [x] Add blurb to beginning of each article to announce the title and author\n1. [x] Reduce the delay with loading new article segments (maybe cache them in the background?)\n1. [x] Figure out how long audio assets should be held onto before discarding\n    - Should they be deleted immediately after use?\n    - Should I try to incoorporate a smart caching scheme (probably not this one)?\n1. [ ] Add support for lists and headers in the HTML parser, also authors.\n1. [x] Implement a system to delete left-over Polly Queue table entries and audio assets when a playlist entry is deleted.\n1. [ ] Add ability to queue unspecified number of articles\n    - i.e. play back all articles until told to stop\n1. [x] Streamline the process for deleting old assets\n    - Maybe keep a list of currently-downloaded assets in the playlist object so fewer repeat queries need to be done\n    - Or combine all the audio asset objects into one list object with an index marker\n1. [x] Streamline the cleanup phase so that old audio assets are reliably deleted\n    - Maybe keep track of when an asset was last played and delete it when it's been idle for too long\n1. [ ] Try implementing an automated deploy pipeline for the skill by following [this tutorial](https://stelligent.com/2017/07/25/use-aws-codepipeline-to-deploy-amazon-alexa-skill/).\n1. [x] Simplify the tracking of playlists, current index within an article, etc. by using the `this.attributes` object instead of a separate table.\n1. [ ] Look at [bespoken.io](https://bespoken.io/) as an option for easier skill development\n\n## FIXME\n\n1. [x] Update `playNext` and `playPrevious` actions to play next/previous article, rather than next/previous audio asset.\n1. [ ] Ensure that `playNext` and `playPrevious` set the curr_index back to zero\n1. [ ] When more than one item is queued in the playlist, the numSlices attribute is sometimes copied from the first item\n1. [ ] When only one item is queued to the playlist, sometimes a second ghost item is added with no attributes other than a copy of the first item's `numSlices`\n1. [x] Figure out why the first audio asset is sometimes repeated at the start of an article's playback.\n1. [ ] Something is preventing the articles from playing past the second `audioAsset`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesimkowitz%2Fpocket-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesimkowitz%2Fpocket-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesimkowitz%2Fpocket-reader/lists"}