{"id":14972755,"url":"https://github.com/philgyford/django-ditto","last_synced_at":"2025-04-05T00:07:35.710Z","repository":{"id":33728714,"uuid":"37383041","full_name":"philgyford/django-ditto","owner":"philgyford","description":"A collection of Django apps for copying things from third-party sites and services.","archived":false,"fork":false,"pushed_at":"2025-02-05T17:54:04.000Z","size":22773,"stargazers_count":84,"open_issues_count":30,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T23:05:51.263Z","etag":null,"topics":["django","django-application","flickr","lastfm","pinboard","twitter"],"latest_commit_sha":null,"homepage":"https://django-ditto.readthedocs.io","language":"Python","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/philgyford.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2015-06-13T18:30:41.000Z","updated_at":"2025-03-14T04:57:24.000Z","dependencies_parsed_at":"2024-09-23T12:01:05.221Z","dependency_job_id":"e4386b4f-a29f-4112-b064-1806375a977f","html_url":"https://github.com/philgyford/django-ditto","commit_stats":{"total_commits":984,"total_committers":3,"mean_commits":328.0,"dds":"0.019308943089430874","last_synced_commit":"aedfe04554990f9473a1fe7c729017fb60f75818"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philgyford%2Fdjango-ditto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philgyford%2Fdjango-ditto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philgyford%2Fdjango-ditto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philgyford%2Fdjango-ditto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philgyford","download_url":"https://codeload.github.com/philgyford/django-ditto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266563,"owners_count":20910836,"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":["django","django-application","flickr","lastfm","pinboard","twitter"],"created_at":"2024-09-24T13:47:28.898Z","updated_at":"2025-04-05T00:07:35.703Z","avatar_url":"https://github.com/philgyford.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django Ditto\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-ditto)\n[![image](https://github.com/philgyford/django-ditto/actions/workflows/tests.yml/badge.svg)](https://github.com/philgyford/django-ditto/actions/workflows/tests.yml \"Tests status\")\n[![codecov](https://codecov.io/gh/philgyford/django-ditto/branch/main/graph/badge.svg?token=T7TMMDS64A)](https://codecov.io/gh/philgyford/django-ditto)\n[![image](https://readthedocs.org/projects/django-ditto/badge/?version=stable)](https://django-ditto.readthedocs.io/en/stable/?badge=stable \"Documentation status\")\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n\nA collection of Django apps for copying things from third-party sites and services. Requires Python 3.9 to 3.13, and Django 4.2, 5.1 or 5.2.\n\n[Read the documentation.](http://django-ditto.readthedocs.io/en/latest/)\n\n[See screenshots of a site using the supplied templates.](https://github.com/philgyford/django-ditto/tree/main/screenshots)\n\nInstall using [pip](https://pip.pypa.io/en/stable/):\n\n    $ pip install django-ditto\n\nNOTE 1: It will install [Pillow](http://pillow.readthedocs.io/en/latest/), among other things, which has prerequisites of its own, such as libjpeg and zlib. Sorry.\n\nNOTE 2: As of 2023 I'm unsure how well the Twitter integration still works given the state of its API etc.\n\nCurrently, Ditto can copy these things from these services:\n\n- [Flickr](https://flickr.com/)\n  - Photos\n  - Photosets\n  - Original image and video files\n  - Users\n- [Last.fm](https://www.last.fm/)\n  - Scrobbles (Artist, Track and Album)\n- [Pinboard](https://pinboard.in/)\n  - Bookmarks\n- [Twitter](https://twitter.com/)\n  - Tweets\n  - Favorites/Likes\n  - Images and Animated GIFs (but not videos)\n  - Users\n\nThe Ditto apps provide:\n\n- Models\n- Admin\n- Management commands to fetch the data/files\n- Views and URLs\n- Templates (that use [Bootstrap 4](https://getbootstrap.com))\n- Template tags for common things (eg, most recent Tweets, or Flickr photos uploaded on a particular day)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilgyford%2Fdjango-ditto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilgyford%2Fdjango-ditto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilgyford%2Fdjango-ditto/lists"}