{"id":18046596,"url":"https://github.com/ltla/acceptable-anime-gifs-validator","last_synced_at":"2025-04-05T04:24:45.425Z","repository":{"id":82716694,"uuid":"431408396","full_name":"LTLA/acceptable-anime-gifs-validator","owner":"LTLA","description":"Validator for the acceptable anime GIF database","archived":false,"fork":false,"pushed_at":"2021-12-04T07:18:54.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-10T12:28:16.514Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/LTLA.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-24T08:44:31.000Z","updated_at":"2021-12-04T07:18:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"868f5c1c-6828-4492-93da-63ea99f13095","html_url":"https://github.com/LTLA/acceptable-anime-gifs-validator","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2Facceptable-anime-gifs-validator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2Facceptable-anime-gifs-validator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2Facceptable-anime-gifs-validator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LTLA%2Facceptable-anime-gifs-validator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LTLA","download_url":"https://codeload.github.com/LTLA/acceptable-anime-gifs-validator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247287997,"owners_count":20914278,"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-10-30T19:08:04.653Z","updated_at":"2025-04-05T04:24:45.406Z","avatar_url":"https://github.com/LTLA.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Validate the acceptable anime GIF registry\n\nThis repository contains code to validate the [acceptable anime GIF registry](https://github.com/LTLA/acceptable-anime-gifs). \nIt will also collate the GIF metadata into a single set of manifests for easy consumption by other projects.\nTo use, simply download the [prebuilt binary](https://github.com/LTLA/acceptable-anime-gifs-validator/releases/tag/latest) \n(or run `go build .` yourself) and then run it on a directory containing the GIF registry:\n\n```sh\n./validator -dir registry\n```\n\nThe registry should contain subdirectories for each show, which in turn contain the GIFs from that show.\nEach show and each GIF should have a corresponding JSON file containing its metadata.\nAs a result, the contents of the registry directory should look like:\n\n```\nregistry/\n- \u003cSHOW_1\u003e.json\n- \u003cSHOW_1\u003e/\n  - \u003cGIF_1\u003e.gif\n  - \u003cGIF_1\u003e.json\n  - \u003cGIF_2\u003e.gif\n  - \u003cGIF_2\u003e.json\n  - ..\n- \u003cSHOW_2\u003e.json\n- \u003cSHOW_2\u003e/\n  - \u003cGIF_1\u003e.gif\n  - \u003cGIF_1\u003e.json\n  - ...\n- ...\n```\n\nNote that the `SHOW_*` and `GIF_*` are arbitrary - any value can be used as long as they are unique within their respective directories.\nThat is, each show has its own `SHOW_*` name, while each GIF within a given show has a different `GIF_*` name (which does not need to be unique across shows).\n\nFor each show, the metadata in the JSON file should contain:\n\n- `id`: the [MyAnimeList](https://myanimelist.net) identifier for the show.\n- `name`: the name of the show.\n- `characters`: an object containing the name and MyAnimeList identifier for relevant characters.\n\nFor example, we might have:\n\n```js\n{\n    \"id\":\"10165\",\n    \"name\":\"Nichijou\",\n    \"characters\": {\n        \"Nano Shinonome\": \"10422\",\n        \"Hakase Shinonome\": \"41055\",\n        \"Mio Naganohara\": \"40081\"\n    }\n}\n```\n\nFor each GIF, the metadata should contain:\n\n- `characters`: an array of strings naming the characters involved in the GIF.\n  Each character named in this manner should also be listed in the show's metadata.\n- `sentiments`: an array of strings listing the sentiments expressed in the GIF.\n  (Controlled vocabulary coming soon.)\n- `url`: string containing the original source of the GIF.\n\nSo, for example:\n\n```js\n{\n    \"characters\": [\n        \"Mio Naganohara\"\n    ],\n    \"sentiments\": [\n        \"attack\"\n    ],\n    \"url\": \"https://25.media.tumblr.com/tumblr_m6r2fnOPGO1qzvtljo1_500.gif\"\n}\n```\n\nThe program will then produce two JSON manifests containing arrays of objects.\nThe first is `gifs.json`, where each object describes a GIF and has the following fields:\n\n- `path`: string containing the path to the GIF file relative to the input directory.\n- `show_id`: string containing the MyAnimeList identifier for the show in which the GIF occurs.\n- `characters`: an array of strings as described for the `\u003cGIF_*\u003e.json` file.\n- `sentiments`: an array of strings as described for the `\u003cGIF_*\u003e.json` file.\n- `url`: string as described for the `\u003cGIF_*\u003e.json` file.\n\nThe second file is `shows.json`, which also contains an array of objects describing the individual shows.\nEach object has exactly the same contents as the `\u003cSHOW_*\u003e.json` JSON file for each show.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fltla%2Facceptable-anime-gifs-validator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fltla%2Facceptable-anime-gifs-validator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fltla%2Facceptable-anime-gifs-validator/lists"}