{"id":22153901,"url":"https://github.com/philr/feedtr","last_synced_at":"2025-03-24T13:45:34.066Z","repository":{"id":79881369,"uuid":"44404123","full_name":"philr/feedtr","owner":"philr","description":"A Go Language Feed Transformer","archived":false,"fork":false,"pushed_at":"2015-10-16T19:20:18.000Z","size":136,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T18:47:12.323Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/philr.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}},"created_at":"2015-10-16T18:39:49.000Z","updated_at":"2015-10-16T18:40:21.000Z","dependencies_parsed_at":"2023-03-12T09:18:55.324Z","dependency_job_id":null,"html_url":"https://github.com/philr/feedtr","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philr%2Ffeedtr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philr%2Ffeedtr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philr%2Ffeedtr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philr%2Ffeedtr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philr","download_url":"https://codeload.github.com/philr/feedtr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245284705,"owners_count":20590307,"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":"2024-12-02T01:38:50.993Z","updated_at":"2025-03-24T13:45:34.044Z","avatar_url":"https://github.com/philr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"feedtr - A Go Language Feed Transformer\n=======================================\n\nfeedtr fetches feed sources (Atom, RSS or anything using XML), transforms them\nusing XSLT and saves the outputs.\n\nfeedtr is implemented in Go as a library with a command line front end.\n\n\nCommand Line\n------------\n\nThe source code for the command line interface can be found in\n`cmd/feedtr/main.go`.\n\nAfter building, run with `feedtr --config-file=config.json` or\n`feedtr \u003c config.json`.\n\nThe config file specifies a number of outputs to be produced. Each output is\ncreated by fetching a source and transforming it.\n\nFor example, fetching the GitHub public timeline and filtering it to only\ninclude fork events:\n\n**config.json:**\n\n```JSON\n{\n  \"outputs\": [\n    {\n      \"name\": \"github-fork-events.atom\",\n      \"source\": \"https://github.com/timeline\",\n      \"transforms\": [\"github-fork-events.xslt\"]\n    }\n  ]\n}\n```\n\nIf using the `--config-file` option, the files referenced in `\"transforms\"`\nshould be placed in a directory named `transforms` located in the same directory\nas the config file. If loading the config from standard input, the `transforms`\ndirectory should be in the current directory.\n\n**transforms/github-fork-events.xslt:**\n\n```XSLT\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cxsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:atom=\"http://www.w3.org/2005/Atom\"\u003e\n  \u003c!-- Copy everything unless explicitly handled below --\u003e\n  \u003cxsl:template match=\"@*|*|processing-instruction()|comment()\"\u003e\n    \u003cxsl:copy\u003e\n      \u003cxsl:apply-templates select=\"*|@*|text()|processing-instruction()|comment()\"/\u003e\n    \u003c/xsl:copy\u003e\n  \u003c/xsl:template\u003e\n\n  \u003c!-- Adjust the title --\u003e\n  \u003cxsl:template match=\"//atom:feed/atom:title\"\u003e\n    \u003catom:title\u003eGitHub Public Timeline Fork Events Feed\u003c/atom:title\u003e\n  \u003c/xsl:template\u003e\n\n  \u003c!-- Exclude any \u003centry\u003es that don't relate to ForkEvents --\u003e\n  \u003cxsl:template match=\"atom:entry[not(contains(atom:id, ':ForkEvent/'))]\"/\u003e\n\u003c/xsl:stylesheet\u003e\n```\n\nWhen `feedtr` runs, it will create a `cache` directory to store feeds that have\nbeen fetched and a `outputs` directory to store the transformed outputs.\n\nIn the above example, a file named `github-fork-events.atom` will be created in\nthe `outputs` directory. This will contain the result of running the XSLT\ntransform.\n\nTransforms will only be run if the source has changed (based on the date\nreturned over HTTP) since the last output file was written. If the configuration\nor transforms are changed, the relevant outputs should be manually deleted.\n\n\nLibrary\n-------\n\nPlease refer to the code documentation along with the `cmd/feedtr/main.go`\nsource code for example usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilr%2Ffeedtr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilr%2Ffeedtr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilr%2Ffeedtr/lists"}