{"id":27337908,"url":"https://github.com/rhizoome/mspace","last_synced_at":"2025-04-12T15:25:15.775Z","repository":{"id":255858724,"uuid":"849802318","full_name":"rhizoome/mspace","owner":"rhizoome","description":"Music QR codes. Release music in public space.","archived":false,"fork":false,"pushed_at":"2024-09-03T21:24:49.000Z","size":61864,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T02:35:16.246Z","etag":null,"topics":["code-sharing","inactive"],"latest_commit_sha":null,"homepage":"https://rhizoome.ch/sharing/","language":"Python","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/rhizoome.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-08-30T09:23:12.000Z","updated_at":"2024-09-03T21:24:52.000Z","dependencies_parsed_at":"2024-09-07T15:07:14.429Z","dependency_job_id":null,"html_url":"https://github.com/rhizoome/mspace","commit_stats":null,"previous_names":["rhizoome/mspace"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhizoome%2Fmspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhizoome%2Fmspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhizoome%2Fmspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhizoome%2Fmspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhizoome","download_url":"https://codeload.github.com/rhizoome/mspace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248587804,"owners_count":21129298,"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":["code-sharing","inactive"],"created_at":"2025-04-12T15:25:15.071Z","updated_at":"2025-04-12T15:25:15.755Z","avatar_url":"https://github.com/rhizoome.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Music Space\n===========\n\nHow it works\n============\n\nFind a QR Code in public space, scan it, listen to the music, download it.\n\nWhy\n===\n\nThe internet is a shit place to put your hobby art out. You compete with\neveryone on the planet, people will be mean to you, expectations are usually too\nhigh. You are not a big record-label, you put yourself into your music and you\nlove some people experience it, maybe like it and download it.\n\nAt least that is my position and I was searching for a solution for years.\n\nRepository Status: Sharing / Inactive\n=====================================\n\nThis repository hosts code that I’ve chosen to share publicly for educational,\ndemonstration, or archival purposes. Please note the following:\n\n- **No Active Maintenance**: This project is not actively maintained or updated.\n  It serves primarily as a snapshot of a certain stage of development for those\n  who might find parts of the code useful or interesting. I try to accept pull-\n  request, but do not expect anything. If interest in the project increases, I\n  might change the repository status.\n- **No Support Provided**: As this is an inactive project, I’m unable to provide\n  support, answer issues, or accommodate pull requests.\n- **Use at Your Own Risk**: While you’re welcome to explore, fork, or use the\n  code in your own projects, please do so with the understanding that this\n  repository is provided as-is, without any guarantees on its functionality or\n  security.\n\nFeel free to explore the code and utilize it under the terms of the license\nattached to this repository!\n\nPlanning\n========\n\nPhase 1\n-------\n\nThere is a page per song, that shows:\n\n* A cover\n* A view counter\n* A play-button, with a click counter\n* Downloads (aac, opus, mp3, alac, flac), with a download counter\n* A like-button, with a counter\n\nThe counters should give people a sense, that they are not alone in the space.\nI'd want to add some more ways to give people a sense of commonality without\nusing comments [^1].\n\nThe QR Code \"sticker\" needs to have a design that allows people to recognize them\nas `Music Space` instantly.\n\n[^1]: I feel comments are one of the big evils on the internet.\n\nPhase 2\n-------\n\nShow a map where other songs can be found in public space. Yes one QR Code gives\nyou access to one track only. To access more songs you need to play geo-caching.\n\n* A feature to report missing QR Codes.\n\nMaybe more.\n\nPhase 3\n-------\n\nGive people a sense of commonality.\n\nBrainstoming:\n\n* Post images\n  * Problem: abuse/spam\n* Share lococation: I am currently standing beside that QR Code\n  * Problem will happen too seldom\n* Share location at a central metting point\n  * There is one location for the whole `Music Space`\n  * People can post that they are there\n\nCurrently I don't think I've found the right idea yet.\n\nFeatures\n--------\n\n### Phase 1\n\n* Uses [caddy](https://caddyserver.com/), [quat](https://gitlab.com/pgjones/quart)\n  and [hypercorn](https://caddyserver.com/)\n* The database is just a set of toml files\n  * [aiofiles](https://www.twilio.com/blog/working-with-files-asynchronously-in-python-using-aiofiles-and-asyncio)\n  * Lock the file (actually the path in lock-table)\n* https://[site]/[ID] displays the track\n* ID looks like this `wczj-tmqg`\n* https://[site]/static gives access to images/downloads/streams\n* CSS\n  * Place track cover full-site blured in the background\n  * Track cover, containing a play button\n  * View count is top-right\n  * Play count below the track cover\n  * Download section below that\n* Also add Dockerfiles, but docker-compose is delegated to the user\n\n_\n\nTODO\n----\n\nLets start with Phase 1:\n\n- [x] Host the site somewhere\n- [x] Create poetry project\n- [x] Add basic dependnecies\n- [x] Design toml-file\n- [x] Read toml\n- [x] Display track (no CSS yet)\n- [ ] Create config.toml??\n- [x] Create a demo track\n- [x] Create a CSS\n- [ ] Adjust blur-background color/brightness via toml??\n- [x] Early deploy\n   - [x] Dockerfile\n   - [ ] Update features/TODO according to problems encountered\n     - [x] View only route (no count updates)\n     - [x] Some basic error handling\n     - [ ] Display soundcloud comments only if needed\n     - [x] Configure access.log to file for statistics??\n     - [x] Translate downloads into cover\n     - [x] Move control down with 75vmin\n     - [x] Remove unneeded z-indexs\n     - [x] Stream doesn't need absolute anymore right?\n     - [x] Favicon\n     - [x] Touch icon\n     - [x] Messenger preview\n     - [x] Access log\n     - [x] Docker access log anaylizer\n     - [x] Docker-compose map database to outside\n     - [ ] resonate.is\n     - [ ] Stream aac [^2]\n- [ ] QR Code\n   - [ ] Design sticker\n   - [ ] Write script to generate sticker\n   - [ ] Print it, test it, deploy it\n\n[^2]: ffmpeg -i aaaa-aaaa-aaaa-download.flac -movflags +faststart\naaaa-aaaa-aaaa-stream.m4a\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhizoome%2Fmspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhizoome%2Fmspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhizoome%2Fmspace/lists"}