{"id":16017228,"url":"https://github.com/njh/radiodns-uk","last_synced_at":"2026-04-04T06:36:04.077Z","repository":{"id":26236997,"uuid":"107732903","full_name":"njh/radiodns-uk","owner":"njh","description":"A directory of RadioDNS enabled radio stations in the UK","archived":false,"fork":false,"pushed_at":"2024-08-01T07:32:56.000Z","size":1748,"stargazers_count":11,"open_issues_count":14,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T00:03:53.718Z","etag":null,"topics":["dab","fm","ofcom","radio","radiodns","transmitter","united-kingdom"],"latest_commit_sha":null,"homepage":"https://www.radiodns.uk/","language":"Ruby","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/njh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-10-20T22:37:11.000Z","updated_at":"2025-03-01T21:36:52.000Z","dependencies_parsed_at":"2024-08-01T09:13:49.557Z","dependency_job_id":null,"html_url":"https://github.com/njh/radiodns-uk","commit_stats":{"total_commits":352,"total_committers":4,"mean_commits":88.0,"dds":"0.019886363636363646","last_synced_commit":"26edc0173a6aba1206eec6b142a2dc3fe2dd928e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Fradiodns-uk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Fradiodns-uk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Fradiodns-uk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2Fradiodns-uk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njh","download_url":"https://codeload.github.com/njh/radiodns-uk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243841150,"owners_count":20356441,"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":["dab","fm","ofcom","radio","radiodns","transmitter","united-kingdom"],"created_at":"2024-10-08T16:04:37.042Z","updated_at":"2026-04-04T06:36:04.043Z","avatar_url":"https://github.com/njh.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"RadioDNS.uk\n===========\n\nThis is the code repository that powers the [radiodns.uk] website. The website is a directory\nlisting of all the radio stations in the United Kingdom which have [RadioDNS] Hybrid Radio\nservices available. Transmitter and DAB multiple information comes from [Ofcom].\n\nThe website written in [Ruby] and uses the [Sequel] and [Roda] gems.\n\n\nThe steps to build the site are:\n\n1. Load the list of TV Anytime genre files into the database\n2. Load the [Transmitter Parameters] spreadsheet from Ofcom into the database\n3. For each service on FM and DAB, lookup the Authoritative FQDN using radiodns.org\n4. For each Authoritative FQDN, attempt to load the Service Information (SI.xml) file\n\n\n## Data Model\n\n\u003cimg src=\"https://github.com/njh/radiodns-uk/blob/master/docs/data-model.png?raw=true\" width=\"533\" height=\"388\" alt=\"Data Model Diagram\" /\u003e\n\n## Project Structure\n\nThese are the key files and directories that make up the project:\n\n* `Gemfile` Used by [Bundler] to list all the dependencies for this project\n* `Rakefile` parent [rake] file, describing build tasks. Run `rake -T` to list all the tasks\n* `ansible` contains an [Ansible] playbook, used to deploy the application to the live server\n* `app.rb` the main web server application and top level router\n* `bin` various ruby scripts, used to generate the site\n* `db.rb` this is used to initialise [Sequel] and sets the `DB` constant\n* `genres` collection of JSON files, mapping [TV Anytime] genre IDs to genre names\n* `helpers.rb` view helpers - methods to generate HTML to make the view code simpler\n* `migrate` [Sequel] database migration files that create/update the database schema\n* `models` directory containing the [Sequel] database models\n* `models.rb` require this file to setup [Sequel] and load all the database models\n* `public` static files served directly by the HTTP server\n* `si_files` the various `SI.xml` files are downloaded to this directory\n* `routes` directory containing route files (controllers) for main part of application\n* `spec` Rspec files to run tests against the application and model code\n* `tasks` directory containing [Rake] task files\n* `views` [Erubi] templates for the the HTML and XML pages\n\n\n## Development\n\nYou may need to install a recent version of [Ruby] on your computer before you can run the scripts.\n\nTo perform the geographic calculations on the transmitter locations, you also need Python 2.7 and the GDAL library.\n\nTo install GDAL on a Mac run:\n\n    $ brew install gdal\n    \nTo install GDAL on Debian/Ubuntu run:\n\n    $ apt-get install python-gdal\n\nThen make sure you have ruby [Bundler] installed:\n\n    $ gem install bundler\n\nAnd install all the dependencies:\n\n    $ bundle install\n\nTo initialise the database run:\n\n    $ bundle exec rake db:migrate\n\nThen fill it up with data using:\n\n    $ bundle exec rake load:all\n\nRun `rake -T` to see a list of the individual tasks:\n\n    $ bundle exec rake -T\n    rake clean             # Deleted all the generated files (based on .gitignore)\n    rake db:annotate       # Annotate Sequel models\n    rake db:migrate        # Migrate database to latest version\n    rake load:all          # Load all data into the database\n    rake load:authorities  # Load authority information for each bearer from ra...\n    rake load:genres       # Load TVA genre data into the database\n    rake load:ofcom        # Load Ofcom data into the database\n    rake load:si           # Load SI files into the database\n    rake publish           # Publish the local SQLite database to the web server\n    rake spec              # Run RSpec code examples\n\nYou can then run a local webserver using:\n\n    $ bundle exec shotgun\n\nShotgun will reload the application after every request, which makes development much easier.\n\nAnd then open the following URL in your browser: [http://localhost:9393/]\n\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/njh/radiodns-uk.\nThis project is intended to be a safe and welcoming space for collaboration. Contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License].\n\n\n[Ansible]:                   http://www.ansible.com/\n[Bundler]:                   http://bundler.io/\n[Erubi]:                     https://github.com/jeremyevans/erubi\n[http://localhost:9393/]:    http://localhost:9393/\n[MIT License]:               http://opensource.org/licenses/MIT\n[Ofcom]:                     https://www.ofcom.org.uk/\n[radiodns.uk]:               http://www.radiodns.uk/\n[RadioDNS]:                  http://www.radiodns.org/\n[Rake]:                      https://github.com/ruby/rake\n[Roda]:                      http://roda.jeremyevans.net/\n[Ruby]:                      http://ruby-lang.org/\n[Sequel]:                    http://sequel.jeremyevans.net/\n[Transmitter Parameters]:    https://www.ofcom.org.uk/spectrum/information/radio-tech-parameters\n[TV Anytime]:                http://www.tv-anytime.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjh%2Fradiodns-uk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjh%2Fradiodns-uk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjh%2Fradiodns-uk/lists"}