├── CNAME ├── prensa.pdf ├── _pages └── index.html ├── assets ├── img │ ├── block.png │ └── spyglass.png ├── icons │ ├── favicon.ico │ ├── flags │ │ ├── cn16.png │ │ ├── cn24.png │ │ ├── fa16.png │ │ ├── fa24.png │ │ ├── gr16.png │ │ ├── gr24.png │ │ ├── id16.png │ │ ├── id24.png │ │ ├── kr16.png │ │ ├── kr24.png │ │ ├── ro16.png │ │ ├── ro24.png │ │ ├── ru16.png │ │ ├── ru24.png │ │ ├── sk16.png │ │ ├── sk24.png │ │ ├── sr16.png │ │ ├── sr24.png │ │ ├── sv16.png │ │ ├── sv24.png │ │ ├── th16.png │ │ ├── th24.png │ │ ├── tw16.png │ │ ├── tw24.png │ │ ├── vi16.png │ │ ├── vi24.png │ │ ├── ar-MA16.png │ │ ├── ar-MA24.png │ │ ├── ca-ES16.png │ │ ├── ca-ES24.png │ │ ├── cs-CZ16.png │ │ ├── cs-CZ24.png │ │ ├── de-DE16.png │ │ ├── de-DE24.png │ │ ├── en-GB16.png │ │ ├── en-GB24.png │ │ ├── en-US16.png │ │ ├── en-US24.png │ │ ├── es-ES16.png │ │ ├── es-ES24.png │ │ ├── fr-FR16.png │ │ ├── fr-FR24.png │ │ ├── he-IL16.png │ │ ├── he-IL24.png │ │ ├── hu-HU16.png │ │ ├── hu-HU24.png │ │ ├── it-IT16.png │ │ ├── it-IT24.png │ │ ├── nl-NL16.png │ │ ├── nl-NL24.png │ │ ├── pl-PL16.png │ │ ├── pl-PL24.png │ │ ├── pt-BR16.png │ │ ├── pt-BR24.png │ │ ├── tr-TR16.png │ │ └── tr-TR24.png │ ├── apple-touch-icon-precomposed.png │ ├── apple-touch-icon-72x72-precomposed.png │ ├── apple-touch-icon-120x120-precomposed.png │ └── apple-touch-icon-144x144-precomposed.png ├── css │ ├── libs │ │ └── jquery.dropdown.css │ └── style.css └── js │ ├── libs │ └── jquery.dropdown.js │ └── scripts.js ├── .gitignore ├── crowdin.yml ├── _layouts ├── default.html └── redirect.html ├── Gemfile ├── script ├── run_jekyll.sh ├── cibuild ├── check_files_formatting.sh ├── ping_websites.rb └── validate_json.rb ├── _config.yml ├── .gitattributes ├── .editorconfig ├── .github ├── workflows │ ├── ping-sites.yml │ ├── tests.yml │ └── codeql-analysis.yml ├── ISSUE_TEMPLATE │ ├── update_entry.md │ └── new_entry.md └── FUNDING.yml ├── .travis.yml ├── _includes ├── footer.html ├── header.html └── body.html ├── LICENSE ├── _plugins └── jgmd.rb ├── _data ├── trans │ ├── ja-JP.json │ ├── ko-KR.json │ ├── he-IL.json │ ├── ru-RU.json │ ├── en-GB.json │ ├── uk-UA.json │ ├── cs-CZ.json │ ├── tr-TR.json │ ├── pt-BR.json │ ├── ca-ES.json │ ├── pt-PT.json │ ├── it-IT.json │ ├── es-ES.json │ ├── nl-NL.json │ ├── sv-SE.json │ ├── ro-RO.json │ ├── de-DE.json │ ├── pl-PL.json │ └── fr-FR.json └── sites.json ├── TRANSLATION_REFERENCE.md ├── Gemfile.lock ├── CONTRIBUTING.md └── README.md /CNAME: -------------------------------------------------------------------------------- 1 | justgetmydata.com 2 | -------------------------------------------------------------------------------- /prensa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/prensa.pdf -------------------------------------------------------------------------------- /_pages/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | lang: en-GB 4 | short: en 5 | --- 6 | -------------------------------------------------------------------------------- /assets/img/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/img/block.png -------------------------------------------------------------------------------- /assets/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/favicon.ico -------------------------------------------------------------------------------- /assets/img/spyglass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/img/spyglass.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site/ 2 | .sass-cache/ 3 | .jekyll-metadata 4 | .bundle/ 5 | vendor/ 6 | .jekyll-cache 7 | -------------------------------------------------------------------------------- /assets/icons/flags/cn16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/cn16.png -------------------------------------------------------------------------------- /assets/icons/flags/cn24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/cn24.png -------------------------------------------------------------------------------- /assets/icons/flags/fa16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/fa16.png -------------------------------------------------------------------------------- /assets/icons/flags/fa24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/fa24.png -------------------------------------------------------------------------------- /assets/icons/flags/gr16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/gr16.png -------------------------------------------------------------------------------- /assets/icons/flags/gr24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/gr24.png -------------------------------------------------------------------------------- /assets/icons/flags/id16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/id16.png -------------------------------------------------------------------------------- /assets/icons/flags/id24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/id24.png -------------------------------------------------------------------------------- /assets/icons/flags/kr16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/kr16.png -------------------------------------------------------------------------------- /assets/icons/flags/kr24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/kr24.png -------------------------------------------------------------------------------- /assets/icons/flags/ro16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ro16.png -------------------------------------------------------------------------------- /assets/icons/flags/ro24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ro24.png -------------------------------------------------------------------------------- /assets/icons/flags/ru16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ru16.png -------------------------------------------------------------------------------- /assets/icons/flags/ru24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ru24.png -------------------------------------------------------------------------------- /assets/icons/flags/sk16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/sk16.png -------------------------------------------------------------------------------- /assets/icons/flags/sk24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/sk24.png -------------------------------------------------------------------------------- /assets/icons/flags/sr16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/sr16.png -------------------------------------------------------------------------------- /assets/icons/flags/sr24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/sr24.png -------------------------------------------------------------------------------- /assets/icons/flags/sv16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/sv16.png -------------------------------------------------------------------------------- /assets/icons/flags/sv24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/sv24.png -------------------------------------------------------------------------------- /assets/icons/flags/th16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/th16.png -------------------------------------------------------------------------------- /assets/icons/flags/th24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/th24.png -------------------------------------------------------------------------------- /assets/icons/flags/tw16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/tw16.png -------------------------------------------------------------------------------- /assets/icons/flags/tw24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/tw24.png -------------------------------------------------------------------------------- /assets/icons/flags/vi16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/vi16.png -------------------------------------------------------------------------------- /assets/icons/flags/vi24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/vi24.png -------------------------------------------------------------------------------- /assets/icons/flags/ar-MA16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ar-MA16.png -------------------------------------------------------------------------------- /assets/icons/flags/ar-MA24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ar-MA24.png -------------------------------------------------------------------------------- /assets/icons/flags/ca-ES16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ca-ES16.png -------------------------------------------------------------------------------- /assets/icons/flags/ca-ES24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/ca-ES24.png -------------------------------------------------------------------------------- /assets/icons/flags/cs-CZ16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/cs-CZ16.png -------------------------------------------------------------------------------- /assets/icons/flags/cs-CZ24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/cs-CZ24.png -------------------------------------------------------------------------------- /assets/icons/flags/de-DE16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/de-DE16.png -------------------------------------------------------------------------------- /assets/icons/flags/de-DE24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/de-DE24.png -------------------------------------------------------------------------------- /assets/icons/flags/en-GB16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/en-GB16.png -------------------------------------------------------------------------------- /assets/icons/flags/en-GB24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/en-GB24.png -------------------------------------------------------------------------------- /assets/icons/flags/en-US16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/en-US16.png -------------------------------------------------------------------------------- /assets/icons/flags/en-US24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/en-US24.png -------------------------------------------------------------------------------- /assets/icons/flags/es-ES16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/es-ES16.png -------------------------------------------------------------------------------- /assets/icons/flags/es-ES24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/es-ES24.png -------------------------------------------------------------------------------- /assets/icons/flags/fr-FR16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/fr-FR16.png -------------------------------------------------------------------------------- /assets/icons/flags/fr-FR24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/fr-FR24.png -------------------------------------------------------------------------------- /assets/icons/flags/he-IL16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/he-IL16.png -------------------------------------------------------------------------------- /assets/icons/flags/he-IL24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/he-IL24.png -------------------------------------------------------------------------------- /assets/icons/flags/hu-HU16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/hu-HU16.png -------------------------------------------------------------------------------- /assets/icons/flags/hu-HU24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/hu-HU24.png -------------------------------------------------------------------------------- /assets/icons/flags/it-IT16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/it-IT16.png -------------------------------------------------------------------------------- /assets/icons/flags/it-IT24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/it-IT24.png -------------------------------------------------------------------------------- /assets/icons/flags/nl-NL16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/nl-NL16.png -------------------------------------------------------------------------------- /assets/icons/flags/nl-NL24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/nl-NL24.png -------------------------------------------------------------------------------- /assets/icons/flags/pl-PL16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/pl-PL16.png -------------------------------------------------------------------------------- /assets/icons/flags/pl-PL24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/pl-PL24.png -------------------------------------------------------------------------------- /assets/icons/flags/pt-BR16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/pt-BR16.png -------------------------------------------------------------------------------- /assets/icons/flags/pt-BR24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/pt-BR24.png -------------------------------------------------------------------------------- /assets/icons/flags/tr-TR16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/tr-TR16.png -------------------------------------------------------------------------------- /assets/icons/flags/tr-TR24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/flags/tr-TR24.png -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /_data/trans/en-GB.json 3 | translation: /_data/trans/%locale%.json 4 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | {% include header.html %} 2 | 3 | {% include body.html %} 4 | 5 | {% include footer.html %} 6 | -------------------------------------------------------------------------------- /assets/icons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /assets/icons/apple-touch-icon-72x72-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/apple-touch-icon-72x72-precomposed.png -------------------------------------------------------------------------------- /assets/icons/apple-touch-icon-120x120-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/apple-touch-icon-120x120-precomposed.png -------------------------------------------------------------------------------- /assets/icons/apple-touch-icon-144x144-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daviddavo/jgmd/HEAD/assets/icons/apple-touch-icon-144x144-precomposed.png -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "ffi", ">= 1.15.5" 4 | gem "jekyll", "~> 4.3" 5 | gem "html-proofer", "= 3.19.4" 6 | 7 | gem "webrick", "~> 1.7" 8 | 9 | gem "jekyll-analytics", "~> 0.1.14" 10 | -------------------------------------------------------------------------------- /script/run_jekyll.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e # halt script on error 3 | 4 | # Build site, validate HTML 5 | bundle exec jekyll build 6 | bundle exec htmlproofer ./_site --disable-external --allow-hash-href --url-ignore "/./#google/" 7 | -------------------------------------------------------------------------------- /script/cibuild: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e # halt script on error 3 | 4 | # Run jekyll 5 | ./script/run_jekyll.sh 6 | 7 | # Validate JSON 8 | ./script/validate_json.rb 9 | ./script/ping_websites.rb 10 | 11 | # Check if files are properly formatted 12 | ./script/check_files_formatting.sh 13 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | exclude: [CONTRIBUTING.md, Gemfile, Gemfile.lock, LICENSE, README.md, script, vendor] 2 | plugins: 3 | - jekyll-analytics 4 | jekyll_analytics: 5 | Matomo: 6 | url: matomo.ddavo.me 7 | siteId: "2" 8 | collections: 9 | pages: 10 | output: true 11 | permalink: /:categories/:title:output_ext 12 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Automatically normalize line endings, error if tab used 2 | * text eol=lf whitespace=tab-in-indent,tabwidth=4 3 | 4 | # Don't diff binary files 5 | *.ico binary 6 | *.png binary 7 | *.jpg binary 8 | *.pdf binary 9 | 10 | # Specify different tabwidth for specific files 11 | *.md whitespace=tab-in-indent,tabwidth=2 12 | *.yml whitespace=tab-in-indent,tabwidth=2 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | charset = utf-8 9 | end_of_line = lf 10 | indent_size = 4 11 | indent_style = space 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | 15 | [*.yml] 16 | indent_size = 2 17 | 18 | [*.md] 19 | indent_size = 2 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /.github/workflows/ping-sites.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | on: 3 | push: 4 | schedule: 5 | - cron: '0 0 * * 0' # Run every Sunday 6 | jobs: 7 | ping-websites: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | - uses: ruby/setup-ruby@v1.61.1 12 | with: 13 | bundler-cache: true 14 | ruby-version: 2.7 15 | - name: Ping Websites 16 | run: $GITHUB_WORKSPACE/script/ping_websites.rb 17 | -------------------------------------------------------------------------------- /_layouts/redirect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Redirecting...

10 | Click here if you are not redirected. 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | os: linux 2 | dist: bionic 3 | language: ruby 4 | rvm: 5 | - 2.6.6 6 | cache: bundler 7 | 8 | env: 9 | global: 10 | - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer 11 | 12 | jobs: 13 | include: 14 | - stage: Run Tests 15 | script: ./script/run_jekyll.sh 16 | name: "Run jekyll" 17 | - script: ./script/validate_json.rb 18 | name: "Validate JSON" 19 | - script: ./script/ping_websites.rb 20 | name: "Ping websites" 21 | - script: ./script/check_files_formatting.sh 22 | name: "Check Files Formatting" 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/update_entry.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Update Entry 3 | about: Tell us if you found out that the data access process changed on a given website 4 | title: '' 5 | labels: 'update_entry' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Backstory 11 | 12 | 13 | # Data 14 | 15 | 16 | - [ ] `name`: 17 | - [ ] `url`: 18 | - [ ] `difficulty`: 19 | - [ ] `notes`: 20 | - [ ] `email`: 21 | - [ ] `email_subject`: 22 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: daviddavo # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: ddavo # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /script/check_files_formatting.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e # halt script on error 3 | 4 | # Validate all files adhere to .editorconfig 5 | # Exclude files which should not be checked against .editorconfig 6 | # (eg. images, LICENSE, system-generated files, and library files) 7 | mapfile -t editorconfigargs < <( 8 | find . \ 9 | -type 'f' \ 10 | ! -name '*.pdf' \ 11 | ! -name '*.png' \ 12 | ! -name '*.ico' \ 13 | ! -name 'LICENSE' \ 14 | ! -name 'Gemfile.lock' \ 15 | ! -path './assets/*/libs/*' \ 16 | ! -path './.bundle/*' \ 17 | ! -path './.git/*' \ 18 | ! -path './_site/*' \ 19 | ! -path './.jekyll-cache/*' \ 20 | ! -path './vendor/*' \ 21 | ) 22 | npx @htmlacademy/editorconfig-cli "${editorconfigargs[@]}" 23 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 12 |
13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | 9 | jobs: 10 | jekyll: 11 | name: Run Jekyll Tests 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v3 16 | - uses: ruby/setup-ruby@v1 17 | with: 18 | ruby-version: 3.2.0 19 | bundler-cache: true 20 | - run: script/run_jekyll.sh 21 | 22 | validate-json: 23 | name: Validate JSON 24 | runs-on: ubuntu-latest 25 | 26 | steps: 27 | - uses: actions/checkout@v3 28 | - uses: ruby/setup-ruby@v1 29 | with: 30 | ruby-version: 3.2.0 31 | bundler-cache: true 32 | - run: script/validate_json.rb 33 | 34 | check-files-formatting: 35 | name: Check Files Formatting 36 | runs-on: ubuntu-latest 37 | 38 | steps: 39 | - uses: actions/checkout@v3 40 | - uses: ruby/setup-ruby@v1 41 | with: 42 | ruby-version: 3.2.0 43 | bundler-cache: true 44 | - run: script/check_files_formatting.sh 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020-2021 The JGMD Contrib Team, & various contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /_plugins/jgmd.rb: -------------------------------------------------------------------------------- 1 | module JustGetMyData 2 | class Generator < Jekyll::Generator 3 | priority :highest 4 | def generate(site) 5 | site.data['trans'].keys.each do |lang| 6 | # First /lang/index.html 7 | site.pages << LanguagePage.new(site, site.source, lang) 8 | end 9 | end 10 | end 11 | 12 | class LanguagePage < Jekyll::PageWithoutAFile 13 | def initialize(site, base, lang) 14 | # TODO: Check if flag exists 15 | @lang = lang 16 | @short = lang.split('-')[0] 17 | 18 | @site = site 19 | @base = base 20 | @dir = @short 21 | @name = 'index.html' 22 | @path = File.join(@dir, @name) 23 | 24 | self.process(@name) 25 | 26 | if @short == 'en' then 27 | @data = { 28 | 'layout' => 'redirect', 29 | 'redirect_to' => '/' 30 | } 31 | else 32 | @data = { 33 | 'layout' => 'default', 34 | 'lang' => @lang, 35 | 'short' => @short 36 | } 37 | end 38 | end 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /_data/trans/ja-JP.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "について", 3 | "contribute": "GitHubで貢献する", 4 | "difficulty": "困難", 5 | "difficulty_easy": "簡単", 6 | "difficulty_hard": "難しい", 7 | "difficulty_impossible": "不可能な", 8 | "difficulty_limited": "限られた可用性", 9 | "difficulty_medium": "中", 10 | "footercredits": "製", 11 | "footerlicense": "この作品は、クリエイティブ コモンズ表示 4.0 国際ライセンスに基づいてライセンスされています。", 12 | "guide": "ガイド", 13 | "guideeasy": "シンプルなプロセス", 14 | "guideexplanations": "上記のリンクはデータ取得の難易度を示す色分けされています:", 15 | "guidehard": "顧客サービスに連絡せずに完全に取得することはできません", 16 | "guideimpossible": "入手できません", 17 | "guidelimited": "取得するにはプライバシー法が定められた地域に住んでいる必要があります", 18 | "guidemedium": "いくつかの追加ステップが必要です", 19 | "hideinfo": "情報を隠す...", 20 | "link_jdm": "JustDeleteMe を訪問", 21 | "link_jwtd": "JustWhatsTheDataを訪問", 22 | "name": "日本語", 23 | "noinfo": "情報がありません", 24 | "noresults": "探しているトピックが見つかりませんか?", 25 | "noresultshelp": "JustGetMyDataをより良くするためにご協力ください", 26 | "popular": "人気", 27 | "pullrequest": "GitHub で Pull Request を作成", 28 | "reset": "リセット", 29 | "sendmail": "メール送信", 30 | "showinfo": "情報を表示...", 31 | "tagline": "Web サービスからデータを取得するためのリンクのディレクトリ。", 32 | "title": "Just Get My Data - Web サービスからデータを取得するためのリンクのディレクトリ。", 33 | "translate": "Crowdinで翻訳", 34 | "twitter": "JGMDにツイートを送信", 35 | "whatisthis": "これは何ですか?", 36 | "whatisthis1": "多くの企業が使用しています", 37 | "whatisthis2": "暗いパターン", 38 | "whatisthis3": "データを得る方法を見つけるのを困難にするテクニックです JustGetMyData は、Web サービスから簡単にデータを取得できるように Url のディレクトリを目指しています。", 39 | "whatisthis4": "追加すべきだと思う Web サイトはありますか?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/ko-KR.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "정보", 3 | "contribute": "GitHub에서 기여하기", 4 | "difficulty": "난이도", 5 | "difficulty_easy": "쉬움", 6 | "difficulty_hard": "어려움", 7 | "difficulty_impossible": "불가능", 8 | "difficulty_limited": "제한적으로 가능", 9 | "difficulty_medium": "보통", 10 | "footercredits": "만든 이들:", 11 | "footerlicense": "이 저작물은 '크리에이티브 커먼즈 저작자표시 4.0 국제 공공 라이선스'에 의거하여 등록되었습니다.", 12 | "guide": "가이드", 13 | "guideeasy": "간단한 절차", 14 | "guideexplanations": "위에 보이는 링크들의 색깔은 데이터 수령 난이도에 따라 다음과 같이 정해져 있습니다:", 15 | "guidehard": "고객 서비스에 연락하지 않고는 완전히 확보할 수 없음", 16 | "guideimpossible": "확보할 수 없음", 17 | "guidelimited": "개인정보 보호 관련 권리(유럽의 GDPR 등)가 적용되는 지역에 거주하고 있음을 증명하여야만 수령할 수 있음", 18 | "guidemedium": "추가적인 몇 단계의 작업이 필요함", 19 | "hideinfo": "간단히...", 20 | "link_jdm": "JustDeleteMe 방문하기", 21 | "link_jwtd": "JustWhatsTheData 방문하기", 22 | "name": "한국어", 23 | "noinfo": "정보 없음", 24 | "noresults": "원하는 것을 찾지 못하였습니까?", 25 | "noresultshelp": "JustGetMyData 개선에 도움을 주세요!", 26 | "popular": "인기도", 27 | "pullrequest": "Github에서 프로젝트에 기여해주세요! Pull Request를 생성하시면 됩니다", 28 | "reset": "초기화", 29 | "sendmail": "메일 보내기", 30 | "showinfo": "자세히...", 31 | "tagline": "웹 서비스에서 보유하고 있는 개인 정보를 확보하기 위한 주소록", 32 | "title": "Just Get My Data | 웹 서비스에서 보유하고 있는 개인 정보를 확보하기 위한 주소록", 33 | "translate": "Crowdin에서 번역하기", 34 | "twitter": "트위터에 JGMD 공유하기", 35 | "whatisthis": "JGMD가 뭐죠?", 36 | "whatisthis1": "많은 기업들은", 37 | "whatisthis2": "다크 패턴 (dark pattern)", 38 | "whatisthis3": "기술을 사용하여 그들의 사이트가 보유하고 있는 당신의 개인정보를 확보하기 어렵게 합니다. JustGetMyData는 이 문제를 해결하고자 사이트별 개인정보 확보 방법을 수집, 정리하여 여러분께 제공합니다.", 39 | "whatisthis4": "혹시 수정하고 싶은 번역이나 추가하고 싶은 사이트가 있나요? 그렇다면 지금" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/he-IL.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "בנוגע", 3 | "contribute": "לתרום ב GitHub", 4 | "difficulty": "קושי", 5 | "difficulty_easy": "קל", 6 | "difficulty_hard": "קשה", 7 | "difficulty_impossible": "לא אפשרי", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "בינוני", 10 | "footercredits": "נוצר על ידי", 11 | "footerlicense": "העבודה הזאת היא ברשיון של Creative Commons Attribution 4.0 International License.", 12 | "guide": "מדריך", 13 | "guideeasy": "תהליך קל", 14 | "guideexplanations": "הקישורים שלמעלה הם מסומנים בצבעים בשביל להראות את הקושי של קבלת המידע:", 15 | "guidehard": "לא ניתן להשיג בלי ליצור קשר עם שירות הלקוחות", 16 | "guideimpossible": "לא ניתן להשיג", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "כמה שלבים נוספים כרוכים", 19 | "hideinfo": "הסתרת מידע...", 20 | "link_jdm": "תבקר JustDeleteMe", 21 | "link_jwtd": "תבקר JustWhatsTheData", 22 | "name": "עברית", 23 | "noinfo": "אין מידע זמין", 24 | "noresults": "לא מוצא את מה שאתה מחפש?", 25 | "noresultshelp": "תעזרו לעשות את JustGetMyData יותר טוב", 26 | "popular": "פופולרי", 27 | "pullrequest": "תעשה Pull Request ב- GitHub", 28 | "reset": "איפוס", 29 | "sendmail": "שלח אימייל", 30 | "showinfo": "תראה מידע...", 31 | "tagline": "קבוצה של קישורים בשביל שתמצא מידע מאתרי אינטרנט.", 32 | "title": "Just Get My Data - ספרייה של קישורים בשביל שתמצא מידע מאתרי אינטרנט.", 33 | "translate": "לתרגום ב- Crowdin", 34 | "twitter": "צייץ JGMD", 35 | "whatisthis": "מה זה?", 36 | "whatisthis1": "מלא חברות משתמשות", 37 | "whatisthis2": "תבנית שחורה", 38 | "whatisthis3": "טכניקות כדי להקשות על מציאת כיצד להשיג את הנתונים שלך. JustGetMyData שואפת להיות ספרייה של כתובות Url כדי לאפשר לך להשיג בקלות את הנתונים שלך משירותי אינטרנט.", 39 | "whatisthis4": "יש לך אתר שלדעתך צריך להוסיף?" 40 | } 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/new_entry.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: New Entry 3 | about: Tell about a new app, service or website that you found out about the data access process 4 | title: '' 5 | labels: 'new_entry' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Backstory 11 | 12 | 13 | # Data 14 | 15 | 16 | - `name`: 17 | - `url`: 18 | - `url_CODE`: 19 | - `difficulty`: 20 | 27 | - `notes`: 28 | - `email`: 29 | - `email_subject`: 30 | - `email_body`: 31 | -------------------------------------------------------------------------------- /_data/trans/ru-RU.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Тип характера", 3 | "contribute": "Внести свой вклад на GitHub", 4 | "difficulty": "трудности", 5 | "difficulty_easy": "легко", 6 | "difficulty_hard": "трудно", 7 | "difficulty_impossible": "невозможно", 8 | "difficulty_limited": "", 9 | "difficulty_medium": "средняя", 10 | "footercredits": "Создано", 11 | "footerlicense": "Эта работа распространяется на основании Международной лицензии Creative Commons Attribution 4.0.", 12 | "guide": "Руководство", 13 | "guideeasy": "Простой Процесс", 14 | "guideexplanations": "Вышеприведенные ссылки кодируются по цвету для указания уровня сложности получения данных:", 15 | "guidehard": "Не может быть полностью получен без обращения к клиентским сервисам", 16 | "guideimpossible": "Нельзя комбинировать", 17 | "guidelimited": "", 18 | "guidemedium": "Несколько дополнительных шагов", 19 | "hideinfo": "скрыть информацию...", 20 | "link_jdm": "Посетить JustDeleteMe", 21 | "link_jwtd": "Посетить JustWhatsTheData", 22 | "name": "Русский", 23 | "noinfo": "Vk. com", 24 | "noresults": "Не можете найти то, что искали?", 25 | "noresultshelp": "Помогите сделать JustGetMyData лучше", 26 | "popular": "Популярные", 27 | "pullrequest": "Форкнуть проект на GitHub", 28 | "reset": "Сброс", 29 | "sendmail": "Отправить e-mail", 30 | "showinfo": "показать подробности...", 31 | "tagline": "Каталог прямых ссылок для получения ваших данных от веб-сервисов.", 32 | "title": "Just Get My Data - Каталог прямых ссылок для получения ваших данных от веб-сервисов.", 33 | "translate": "Перевести на Crowdin", 34 | "twitter": "Твитнуть JGMD", 35 | "whatisthis": "Что это?", 36 | "whatisthis1": "Многие компании используют", 37 | "whatisthis2": "тёмные паттерны", 38 | "whatisthis3": "техники, которые затрудняют поиск как получить ваши данные. JustGetMyData стремится быть каталогом URL-адресов, чтобы вы могли легко получить ваши данные с веб-сервисов.", 39 | "whatisthis4": "Есть ли сайт, который вы думаете, должен быть добавлен?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/en-GB.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "About", 3 | "contribute": "Contribute on GitHub", 4 | "difficulty": "difficulty", 5 | "difficulty_easy": "easy", 6 | "difficulty_hard": "hard", 7 | "difficulty_impossible": "impossible", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "medium", 10 | "footercredits": "Made by", 11 | "footerlicense": "This work is licensed under a Creative Commons Attribution 4.0 International License.", 12 | "guide": "Guide", 13 | "guideeasy": "Simple process", 14 | "guideexplanations": "The links above are colour-coded to indicate the difficulty level of obtaining the data:", 15 | "guidehard": "Cannot be fully obtained without contacting customer services", 16 | "guideimpossible": "Cannot be obtained", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "Some extra steps involved", 19 | "hideinfo": "hide info...", 20 | "link_jdm": "Visit JustDeleteMe", 21 | "link_jwtd": "Visit JustWhatsTheData", 22 | "name": "English", 23 | "noinfo": "No Info Available", 24 | "noresults": "Can't find what you're looking for?", 25 | "noresultshelp": "Help make JustGetMyData better", 26 | "popular": "Popular", 27 | "pullrequest": "Make a Pull Request on GitHub", 28 | "reset": "Reset", 29 | "sendmail": "Send email", 30 | "showinfo": "show info...", 31 | "tagline": "A directory of direct links for you to obtain your data from web services.", 32 | "title": "Just Get My Data - A directory of direct links for you to obtain your data from web services.", 33 | "translate": "Translate on Crowdin", 34 | "twitter": "Tweet JGMD", 35 | "whatisthis": "What is this?", 36 | "whatisthis1": "Many companies use", 37 | "whatisthis2": "dark pattern", 38 | "whatisthis3": "techniques to make it difficult to find how to obtain your data. JustGetMyData aims to be a directory of urls to enable you to easily obtain your data from web services.", 39 | "whatisthis4": "Got a site you think should be added?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/uk-UA.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Про нас", 3 | "contribute": "Допомогти на GitHub", 4 | "difficulty": "складність", 5 | "difficulty_easy": "легко", 6 | "difficulty_hard": "складно", 7 | "difficulty_impossible": "неможливо", 8 | "difficulty_limited": "обмежена доступність", 9 | "difficulty_medium": "середньо", 10 | "footercredits": "Створено", 11 | "footerlicense": "Ця робота ліцензована відповідно до Creative Commons Attribution 4.0 International License.", 12 | "guide": "Посібник", 13 | "guideeasy": "Простий процес", 14 | "guideexplanations": "Колір наведених вище посилань вказує на рівень складності отримання даних:", 15 | "guidehard": "Неможливо отримати без звернення до служби підтримки", 16 | "guideimpossible": "Неможливо отримати", 17 | "guidelimited": "Не можна отримати без підтвердження ви живете в районі із законами про конфіденційність", 18 | "guidemedium": "Потребують кількох додаткових кроків", 19 | "hideinfo": "приховати інформацію...", 20 | "link_jdm": "Відвідати JustDeleteMe", 21 | "link_jwtd": "Відвідати JustWhatsTheData", 22 | "name": "Українська", 23 | "noinfo": "Немає інформації", 24 | "noresults": "Не можеш знайти те, що шукаєш?", 25 | "noresultshelp": "Допоможи покращити JustGetMyData", 26 | "popular": "Популярні", 27 | "pullrequest": "Створи запит на GitHub", 28 | "reset": "Скинути", 29 | "sendmail": "Надіслати листа", 30 | "showinfo": "показати інформацію...", 31 | "tagline": "Каталог прямих посилань для отримання твоїх даних із веб-сервісів.", 32 | "title": "Just Get My Data - Каталог прямих посилань для отримання твоїх даних із веб-сервісів.", 33 | "translate": "Перекласти на Crowdin", 34 | "twitter": "Твітнути JGMD", 35 | "whatisthis": "Що це?", 36 | "whatisthis1": "Багато компаній використовують методи", 37 | "whatisthis2": "темного візерунку,", 38 | "whatisthis3": "щоб ускладнити пошук способів, як отримати твої дані. JustGetMyData має на меті бути каталогом посилань, які допоможуть тобі з легкістю отримати свої дані з веб-сервісів.", 39 | "whatisthis4": "Маєш сайт, який, на твою думку, слід додати?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/cs-CZ.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "O projektu", 3 | "contribute": "Zapojte se na GitHubu", 4 | "difficulty": "obtížnost", 5 | "difficulty_easy": "jednoduché", 6 | "difficulty_hard": "těžké", 7 | "difficulty_impossible": "nemožné", 8 | "difficulty_limited": "limitované", 9 | "difficulty_medium": "středně těžké", 10 | "footercredits": "Vytvořeno", 11 | "footerlicense": "Toto dílo je licencováno pod licencí Creative Commons Uveďte autora 4.0 International License.", 12 | "guide": "Návod", 13 | "guideeasy": "Snadný průběh", 14 | "guideexplanations": "Odkazy jsou barevně označeny tak, aby naznačovali obtížnost stažení dat:", 15 | "guidehard": "Není možné stáhnout své data bez kontaktování podpory", 16 | "guideimpossible": "Data nemůžou být staženy", 17 | "guidelimited": "Nelze získat bez ověření, zda žijete v oblasti se zákony o ochraně osobních údajů", 18 | "guidemedium": "Potřeba provést několik kroků navíc", 19 | "hideinfo": "skrýt podrobnosti...", 20 | "link_jdm": "Navštivte JustDeleteMe", 21 | "link_jwtd": "Navštivte JustWhatsTheData", 22 | "name": "Čeština", 23 | "noinfo": "Žádné podrobnosti k dispozici", 24 | "noresults": "Nemůžete najít, co hledáte?", 25 | "noresultshelp": "Pomozte nám vylepšit JustGetMyData", 26 | "popular": "Populární", 27 | "pullrequest": "Vytvořte Pull Request na GitHubu", 28 | "reset": "Resetovat", 29 | "sendmail": "Poslat e-mail", 30 | "showinfo": "zobrazit podrobnosti...", 31 | "tagline": "Seznam odkazů na stažení Vašich dat z internetových služeb.", 32 | "title": "Just Get My Data | Seznam odkazů na stažení Vašich dat z internetových služeb.", 33 | "translate": "Přeložit na Crowdin", 34 | "twitter": "Tweetnout o JGMD", 35 | "whatisthis": "O čem je tento projekt?", 36 | "whatisthis1": "Mnoho společností používá", 37 | "whatisthis2": "tmavý vzor", 38 | "whatisthis3": "techniky, aby ztížily nalezení postupu na stažení Vašich dat. JustGetMyData má za cíl být seznamem odkazů, který umožňuje jednoduše stáhnout Vaše data z internetových služeb.", 39 | "whatisthis4": "Máte nápad na stránku, o které si myslíte, že by měla být přidána?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/tr-TR.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Hakkında", 3 | "contribute": "GitHub'da Katkıda Bulun", 4 | "difficulty": "zorluk derecesi", 5 | "difficulty_easy": "kolay", 6 | "difficulty_hard": "zor", 7 | "difficulty_impossible": "imkansız", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "orta", 10 | "footercredits": "Tarafından yapılmıştır", 11 | "footerlicense": "Bu çalışma, Creative Commons Atıf 4.0 Uluslararası Lisansı ile lisanslanmıştır.", 12 | "guide": "Rehber", 13 | "guideeasy": "Kolay kullanım", 14 | "guideexplanations": "Yukarıdaki bağlantılar, verileri elde etmenin zorluk seviyesini belirtmek için renk kodludur:", 15 | "guidehard": "Müşteri hizmetlerine başvurmadan tam olarak elde edilemez", 16 | "guideimpossible": "Elde edilemez", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "Bazı ekstra adımlar dahil", 19 | "hideinfo": "bilgiyi gizle...", 20 | "link_jdm": "JustDeleteMe'yi ziyaret et", 21 | "link_jwtd": "JustWhatsTheData'yi ziyaret et", 22 | "name": "Türkçe", 23 | "noinfo": "Bilgiye ulaşılamıyor", 24 | "noresults": "Aradığınızı bulamadınız mı?", 25 | "noresultshelp": "JustGetMyData'nın iyileştirilmesine yardımcı olun", 26 | "popular": "Popüler", 27 | "pullrequest": "GitHub üzerinde bir Pull Request oluşturun", 28 | "reset": "Sıfırla", 29 | "sendmail": "E-posta gönder", 30 | "showinfo": "bilgileri göster...", 31 | "tagline": "Verilerinizi web hizmetlerinden almanız için doğrudan bağlantılar dizini.", 32 | "title": "Just Get My Data | Verilerinizi web hizmetlerinden elde edebileceğiniz doğrudan bağlantıların bulunduğu bir dizin.", 33 | "translate": "Crowdin'de çevirin", 34 | "twitter": "JGMD'yi tweet'leyin", 35 | "whatisthis": "Bu nedir?", 36 | "whatisthis1": "Çoğu şirket", 37 | "whatisthis2": "koyu desen", 38 | "whatisthis3": "tekniklerini kullanarak verilerinizi edinmeyi zorlaştırıyor. JustGetMyData, verilerinizi web servislerinden kolayca almanızı sağlamak için bir URL dizini olmayı amaçlamaktadır.", 39 | "whatisthis4": "Eklenmesi gerektiğini düşündüğünüz bir siteniz mi var?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/pt-BR.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Sobre", 3 | "contribute": "Contribua em GitHub", 4 | "difficulty": "dificuldade", 5 | "difficulty_easy": "fácil", 6 | "difficulty_hard": "difícil", 7 | "difficulty_impossible": "impossível", 8 | "difficulty_limited": "", 9 | "difficulty_medium": "médio", 10 | "footercredits": "Feito por", 11 | "footerlicense": "Esta obra foi licenciada sob a Licença Internacional da 'Creative Commons Attribution 4.0'.", 12 | "guide": "Guia", 13 | "guideeasy": "Processo simples", 14 | "guideexplanations": "Os links acima são codificados com cores para indicar o nível de dificuldade de obtenção dos dados:", 15 | "guidehard": "Não pode ser obtido sem contatar o serviço de atendimento ao cliente", 16 | "guideimpossible": "Não pode ser obtido", 17 | "guidelimited": "Não é possível obter sem verificar se você vive em uma área com leis de privacidade", 18 | "guidemedium": "Alguns passos extras envolvidos", 19 | "hideinfo": "ocultar informações...", 20 | "link_jdm": "Visite JustDeleteMe", 21 | "link_jwtd": "Visite o JustWhatsTheData", 22 | "name": "Português Brasileiro", 23 | "noinfo": "Nenhuma informação disponível", 24 | "noresults": "Não consegue encontrar o que você está procurando?", 25 | "noresultshelp": "Ajude a melhorar JustGetMyData", 26 | "popular": "Popular", 27 | "pullrequest": "Faça uma \"Pull Request\" no Github", 28 | "reset": "Reset", 29 | "sendmail": "Enviar email", 30 | "showinfo": "mostrar informações...", 31 | "tagline": "Um diretório de links diretos para você obter seus dados a partir dos serviços da web.", 32 | "title": "Just Get My Data | Um diretório de links diretos para obter seus dados de serviços da web.", 33 | "translate": "Traduza no Crowdin", 34 | "twitter": "Tweet JGMD", 35 | "whatisthis": "O que é isto?", 36 | "whatisthis1": "Muitas empresas usam", 37 | "whatisthis2": "padrão escuro", 38 | "whatisthis3": "técnicas para dificultar a obtenção de seus dados. JustGetMyData pretende ser um diretório de urls para permitir que você obtenha facilmente seus dados de serviços da web.", 39 | "whatisthis4": "Tem um site que você acha que deve ser adicionado?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/ca-ES.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Sobre nosaltres", 3 | "contribute": "Contribuir al GitHub", 4 | "difficulty": "dificultat", 5 | "difficulty_easy": "fàcil", 6 | "difficulty_hard": "difícil", 7 | "difficulty_impossible": "impossible", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "mitjà", 10 | "footercredits": "Desenvolupada per", 11 | "footerlicense": "Aquesta obra està sota llicència Creative Commons Reconeixement 4.0 Internacional.", 12 | "guide": "Guia", 13 | "guideeasy": "Simplement visita", 14 | "guideexplanations": "Els links tenen un codi de colors per indicar el nivell de dificultat a la hora de obtenir les dades:", 15 | "guidehard": "No poden ser obtingudes sense contactar als serveis de atenció al client", 16 | "guideimpossible": "No poden ser obtingudes", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "Alguns passos necessaris", 19 | "hideinfo": "ocultar informació...", 20 | "link_jdm": "Visitar JustDeleteMe", 21 | "link_jwtd": "Visitar JustWhatsTheData", 22 | "name": "Català", 23 | "noinfo": "No hi ha informació disponible", 24 | "noresults": "No pots trobar el que busques?", 25 | "noresultshelp": "Ajuda a millorar JustGetMyDAta", 26 | "popular": "Popular", 27 | "pullrequest": "Fer una Pull Request al GitHub", 28 | "reset": "Restaurar", 29 | "sendmail": "Enviar email", 30 | "showinfo": "mostrar informació...", 31 | "tagline": "Un directory de links per ajudar-te a obtenir les teves dades del serveis webs.", 32 | "title": "Just Get My Data - Un directori de links directes per obtenir les teves dades dels serveis webs.", 33 | "translate": "Traduir a Crowdin", 34 | "twitter": "Twiteja JGMD", 35 | "whatisthis": "Que es aixó?", 36 | "whatisthis1": "Moltes companyies utilitzen", 37 | "whatisthis2": "tecniques de patró ocult", 38 | "whatisthis3": "per complicar el procés de obtenir les teves dades. JustGetMyData tracta de ser un directori de Urls per ajudar-te a obtenir fácilment les teves dades del diferents serveis web.", 39 | "whatisthis4": "Tens una web que creus que hauria de ser afegida?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/pt-PT.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Sobre nós", 3 | "contribute": "Contribuir no GitHub", 4 | "difficulty": "dificuldade", 5 | "difficulty_easy": "fácil", 6 | "difficulty_hard": "difícil", 7 | "difficulty_impossible": "impossível", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "médio", 10 | "footercredits": "Feito por", 11 | "footerlicense": "Este trabalho está licenciado sob uma Licença Creative Commons Atribuição 4.0 Internacional.", 12 | "guide": "Guia", 13 | "guideeasy": "Processo simples", 14 | "guideexplanations": "Os links acima são codificados com cores para indicar o nível de dificuldade de obtenção dos dados:", 15 | "guidehard": "Não podem ser completamente obtidos sem contactar o serviço de apoio ao cliente", 16 | "guideimpossible": "Não podem ser obtidos", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "São necessários alguns passos adicionais", 19 | "hideinfo": "ocultar informações...", 20 | "link_jdm": "Visite o JustDeleteMe", 21 | "link_jwtd": "Visite o JustWhatsTheData", 22 | "name": "Português Europeu", 23 | "noinfo": "Sem informações disponíveis", 24 | "noresults": "Não consegue encontrar o que procura?", 25 | "noresultshelp": "Ajude a melhorar o JustGetMyData", 26 | "popular": "Popular", 27 | "pullrequest": "Faça um Pull Request no GitHub", 28 | "reset": "Repor", 29 | "sendmail": "Enviar e-mail", 30 | "showinfo": "mostrar informações...", 31 | "tagline": "Um diretório de ligações diretas para obter os seus dados de serviços Web.", 32 | "title": "Just Get My Data - Um diretório de ligações diretas para obter os seus dados de serviços Web.", 33 | "translate": "Traduzir no Crowdin", 34 | "twitter": "Tweetar ao JGMD", 35 | "whatisthis": "O que é isto?", 36 | "whatisthis1": "Muitas companhias utilizam técnicas", 37 | "whatisthis2": "\"dark pattern\"", 38 | "whatisthis3": "para dificultar a obtenção dos seus dados. O JustGetMyData pretende ser um diretório de URLs que lhe permite obter facilmente os seus dados de serviços da Web.", 39 | "whatisthis4": "Sabe de outro site que deva ser adicionado?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/it-IT.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Informazioni", 3 | "contribute": "Contribuisci su GitHub", 4 | "difficulty": "difficoltà", 5 | "difficulty_easy": "facile", 6 | "difficulty_hard": "difficile", 7 | "difficulty_impossible": "impossibile", 8 | "difficulty_limited": "disponibilità limitata", 9 | "difficulty_medium": "medio", 10 | "footercredits": "Realizzato da", 11 | "footerlicense": "Questo lavoro è concesso sotto licenza Creative Commons Attribution 4.0 International License.", 12 | "guide": "Guida", 13 | "guideeasy": "Processo semplice", 14 | "guideexplanations": "I link sopra sono codificati con un colore per indicare il livello di difficoltà per ottenere i dati:", 15 | "guidehard": "Impossibile ottenere completamente senza contattare i servizi clienti", 16 | "guideimpossible": "Non può essere ottenuto", 17 | "guidelimited": "Non può essere ottenuto senza verificare che vivi in ​​un'area con leggi sulla privacy", 18 | "guidemedium": "Alcuni passaggi aggiuntivi coinvolti", 19 | "hideinfo": "nascondi informazioni...", 20 | "link_jdm": "Visita JustDeleteMe", 21 | "link_jwtd": "Visita JustWhatsTheData", 22 | "name": "Italiano", 23 | "noinfo": "Nessuna Informazione Disponibile", 24 | "noresults": "Non riesci a trovare quello che stai cercando?", 25 | "noresultshelp": "Aiuta a migliorare JustGetMyData", 26 | "popular": "Popolari", 27 | "pullrequest": "Fai una Pull Request su GitHub", 28 | "reset": "Reset", 29 | "sendmail": "Invia e-mail", 30 | "showinfo": "mostra informazioni...", 31 | "tagline": "Un elenco di link diretti per ottenere i dati dai servizi web.", 32 | "title": "Just Get My Data - Un elenco di link diretti per ottenere i dati dai servizi web.", 33 | "translate": "Traduci su Crowdin", 34 | "twitter": "Tweet JGMD", 35 | "whatisthis": "Cos'è questo?", 36 | "whatisthis1": "Molte aziende usano", 37 | "whatisthis2": "modello scuro", 38 | "whatisthis3": "tecniche per rendere difficile trovare come ottenere i tuoi dati. JustGetMyData si propone di essere una directory di url per consentire di ottenere facilmente i tuoi dati dai servizi web.", 39 | "whatisthis4": "Hai un sito che pensi debba essere aggiunto?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/es-ES.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Acerca de", 3 | "contribute": "Contribuir en GitHub", 4 | "difficulty": "dificultad", 5 | "difficulty_easy": "fácil", 6 | "difficulty_hard": "difícil", 7 | "difficulty_impossible": "imposible", 8 | "difficulty_limited": "disponibilidad limitada", 9 | "difficulty_medium": "media", 10 | "footercredits": "Hecho por", 11 | "footerlicense": "Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional.", 12 | "guide": "Guía", 13 | "guideeasy": "Proceso simple", 14 | "guideexplanations": "Los enlaces de la parte superior se han clasificado con un código de colores para indicar la dificultad para obtener tus datos:", 15 | "guidehard": "No se pueden obtener sin contactar con atención al cliente", 16 | "guideimpossible": "No se pueden obtener", 17 | "guidelimited": "No se puede obtener sin verificar que vives en un área con leyes de privacidad", 18 | "guidemedium": "Se tendrán que hacer algunos pasos extra", 19 | "hideinfo": "esconder información", 20 | "link_jdm": "Visitar JustDeleteMe", 21 | "link_jwtd": "Visitar JustWhatsTheData", 22 | "name": "Español", 23 | "noinfo": "No hay información disponible", 24 | "noresults": "¿No encuentras lo que buscas?", 25 | "noresultshelp": "Ayúdanos a mejorar JustGetMyData", 26 | "popular": "Popular", 27 | "pullrequest": "Haz un 'Pull Request' en GitHub.", 28 | "reset": "Reiniciar", 29 | "sendmail": "Enviar e-mail", 30 | "showinfo": "mostrar información", 31 | "tagline": "Un directorio de enlaces directos para obtener tus datos de la web", 32 | "title": "Just Get My Data - Un directorio de enlaces directos para obtener tus datos de la web.", 33 | "translate": "Traducir en Crowdin", 34 | "twitter": "Twittear JGMD", 35 | "whatisthis": "¿Qué es esto?", 36 | "whatisthis1": "Numerosas empresas usan una técnica llamada", 37 | "whatisthis2": "patrón oscuro", 38 | "whatisthis3": "para dificultar la obtención de datos personales en sus servicios web. JustGetMyData busca ser un directorio donde centralizar los enlaces para obtener fácilmente sus datos personales.", 39 | "whatisthis4": "Crees que se podría poner algún otro servicio web más en la lista?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/nl-NL.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Over", 3 | "contribute": "Draag bij op GitHub", 4 | "difficulty": "moeilijkheidsgraad", 5 | "difficulty_easy": "makkelijk", 6 | "difficulty_hard": "moeilijk", 7 | "difficulty_impossible": "onmogelijk", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "gemiddeld", 10 | "footercredits": "Gemaakt door", 11 | "footerlicense": "Dit werk is gelicentieerd onder een Creative Commons Attribution 4.0 International License.", 12 | "guide": "Handleiding", 13 | "guideeasy": "Eenvoudig proces", 14 | "guideexplanations": "De links hierboven zijn gekleurd om het moeilijkheidsniveau van het verkrijgen van de gegevens aan te geven:", 15 | "guidehard": "Kan niet volledig worden verkregen zonder contact op te nemen met klantendiensten", 16 | "guideimpossible": "Kan niet worden verkregen", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "Sommige extra stappen zijn hierbij betrokken", 19 | "hideinfo": "verberg informatie...", 20 | "link_jdm": "Bezoek JustDeleteMe", 21 | "link_jwtd": "Bezoek JustWhatsTheData", 22 | "name": "Nederlands", 23 | "noinfo": "Geen informatie beschikbaar", 24 | "noresults": "Kunt u niet vinden wat u zoekt?", 25 | "noresultshelp": "Help JustGetMyData beter te maken", 26 | "popular": "Populair", 27 | "pullrequest": "Maak een Pull Request op GitHub", 28 | "reset": "Reset", 29 | "sendmail": "E-mail verzenden", 30 | "showinfo": "toon info...", 31 | "tagline": "Een map met directe links voor u om uw gegevens te verkrijgen van webservices.", 32 | "title": "Krijg Mijn gegevens - een map met directe links voor u om uw gegevens te verkrijgen van web services.", 33 | "translate": "Vertalen op Crowdin", 34 | "twitter": "Tweet JGMD", 35 | "whatisthis": "Wat is dit?", 36 | "whatisthis1": "Veel bedrijven gebruiken", 37 | "whatisthis2": "donker patroon", 38 | "whatisthis3": "technieken om het moeilijk te maken om uw gegevens te verkrijgen. JustGetMyData is bedoeld om een urlmap te zijn om uw gegevens gemakkelijk te verkrijgen via webdiensten.", 39 | "whatisthis4": "Heb je een site die naar je mening toegevoegd moet worden?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/sv-SE.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Om", 3 | "contribute": "Bidra på GitHub", 4 | "difficulty": "svårighetsgrad", 5 | "difficulty_easy": "enkelt", 6 | "difficulty_hard": "svårt", 7 | "difficulty_impossible": "omöjligt", 8 | "difficulty_limited": "limited availability", 9 | "difficulty_medium": "medelsvårt", 10 | "footercredits": "Skapat av", 11 | "footerlicense": "Det här verket är licensierat under Creative Commons-licensen Attribution 4.0 International (CC BY 4.0).", 12 | "guide": "Handledning", 13 | "guideeasy": "Enkel process", 14 | "guideexplanations": "Länkarna ovan är färgkodade för att visa hur svårt det är få tillgång till informationen om dig:", 15 | "guidehard": "Kan inte hämtas i sin helhet utan att kontakta kundtjänst", 16 | "guideimpossible": "Kan inte hämtas", 17 | "guidelimited": "Cannot be obtained without verifying you live in an area with privacy laws", 18 | "guidemedium": "Några ytterligare steg krävs", 19 | "hideinfo": "dölj information ...", 20 | "link_jdm": "Besök JustDeleteMe", 21 | "link_jwtd": "Besök JustWhatsTheData", 22 | "name": "Svenska", 23 | "noinfo": "Ingen information finns tillgänglig", 24 | "noresults": "Hittar du inte vad du letar efter?", 25 | "noresultshelp": "Hjälp till att göra JustGetMyData bättre", 26 | "popular": "Mest populära", 27 | "pullrequest": "Gör en pull-begäran på GitHub", 28 | "reset": "Återställ", 29 | "sendmail": "Skicka e-post", 30 | "showinfo": "visa information ...", 31 | "tagline": "En katalog med direktlänkar, för att du ska kunna hämta information om dig från webbtjänster.", 32 | "title": "Just Get My Data | En katalog med direktlänkar för att hämta information om dig från webbtjänster.", 33 | "translate": "Översätt på Crowdin", 34 | "twitter": "Twittra JGMD", 35 | "whatisthis": "Vad är det här?", 36 | "whatisthis1": "Många företag använder", 37 | "whatisthis2": "dolda mönster", 38 | "whatisthis3": "för att göra det svårt att ta reda på hur du kan få tillgång till information om dig. JustGetMyData är tänkt att vara en länkkatalog, som ska göra det enkelt för dig att hämta information om dig från webbtjänster.", 39 | "whatisthis4": "Har du en webbplats, som du tycker borde läggas till?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/ro-RO.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Despre", 3 | "contribute": "Contribuie pe GitHub", 4 | "difficulty": "dificultate", 5 | "difficulty_easy": "ușor", 6 | "difficulty_hard": "dificil", 7 | "difficulty_impossible": "imposibil", 8 | "difficulty_limited": "disponibilitate limitată", 9 | "difficulty_medium": "mediu", 10 | "footercredits": "Creat de", 11 | "footerlicense": "Această lucrare este licențiată cu Creative Commons Attribution 4.0 International License.", 12 | "guide": "Ghid", 13 | "guideeasy": "Proces simplu", 14 | "guideexplanations": "Legăturile de mai sus sunt codificate în culori pentru a indica nivelul de dificultate al obținerii datelor:", 15 | "guidehard": "Nu pot fi obținute integral fără a contacta serviciile pentru clienți", 16 | "guideimpossible": "Nu pot fi obținute", 17 | "guidelimited": "Nu pot fi obținute fără să verifici că locuiești într-o zonă cu legi privind confidențialitatea datelor", 18 | "guidemedium": "Câțiva pași suplimentari implicați", 19 | "hideinfo": "ascunde informațiile...", 20 | "link_jdm": "Vizitați JustDeleteMe", 21 | "link_jwtd": "Vizitați JustWhatsTheData", 22 | "name": "Română", 23 | "noinfo": "Nu sunt disponibile Informații", 24 | "noresults": "Nu găsești ceea ce cauți?", 25 | "noresultshelp": "Ajută la îmbunătățirea JustGetMyData", 26 | "popular": "Populare", 27 | "pullrequest": "Fă un Pull Request pe GitHub", 28 | "reset": "Resetează", 29 | "sendmail": "Trimite e-mail", 30 | "showinfo": "afișează informațiile...", 31 | "tagline": "O listă cu link-uri directe pentru a obține datele tale din serviciile web.", 32 | "title": "Just Get My Data - Un dosar cu link-uri directe pentru a obține datele tale din serviciile web.", 33 | "translate": "Tradu pe CrowdIn", 34 | "twitter": "Postează pe Twitter despre JGMD", 35 | "whatisthis": "Ce este acesta?", 36 | "whatisthis1": "Multe companii folosesc", 37 | "whatisthis2": "tehnici înșelătoare", 38 | "whatisthis3": "pentru a îngreuna găsirea modalității de a îți obține datele. JustGetMyData își propune să fie o listă de URL-uri pentru a îți permite să obții cu ușurință datele din serviciile web.", 39 | "whatisthis4": "Cunoști un site despre care crezi că ar trebui adăugat?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/de-DE.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "Über", 3 | "contribute": "Auf GitHub beitragen", 4 | "difficulty": "Schwierigkeitsgrad", 5 | "difficulty_easy": "einfach", 6 | "difficulty_hard": "schwer", 7 | "difficulty_impossible": "unmöglich", 8 | "difficulty_limited": "begrenzte Verfügbarkeit", 9 | "difficulty_medium": "mittel", 10 | "footercredits": "Entwickelt von", 11 | "footerlicense": "Dieses Werk ist unter Creative Commons Attribution 4.0 international lizenziert.", 12 | "guide": "Anleitung", 13 | "guideeasy": "Sehr einfaches Verfahren", 14 | "guideexplanations": "Die obigen Links sind farblich kodiert, um den Schwierigkeitsgrad der Datenbeschaffung anzuzeigen:", 15 | "guidehard": "Daten können ohne Kontakt mit dem Kundendienst nicht vollständig abgerufen werden", 16 | "guideimpossible": "Daten können nicht abgerufen werden", 17 | "guidelimited": "Kann nicht erhalten werden, ohne zu verifizieren, dass du in einer Region mit entsprechenden Datenschutzgesetzen lebst", 18 | "guidemedium": "Einige Extraschritte notwendig", 19 | "hideinfo": "Informationen ausblenden...", 20 | "link_jdm": "Besuchen Sie JustDeleteMe", 21 | "link_jwtd": "Besuche JustWhatsTheData", 22 | "name": "Deutsch", 23 | "noinfo": "Weitere Informationen nicht vorhanden", 24 | "noresults": "Finden Sie nicht, wonach Sie suchen?", 25 | "noresultshelp": "Hilf mit, JustGetMyData zu verbessern", 26 | "popular": "Meistgenutzt", 27 | "pullrequest": "Mach einen Pull Request auf GitHub", 28 | "reset": "Zurücksetzen", 29 | "sendmail": "E-Mail schreiben", 30 | "showinfo": "weitere Informationen...", 31 | "tagline": "Unternehmen sammeln deine Daten? Sammel deine Daten von den Unternehmen!", 32 | "title": "Just Get My Data - Her mit meinen Daten!", 33 | "translate": "Auf Crowdin übersetzen", 34 | "twitter": "Twitter über uns", 35 | "whatisthis": "Worum geht es hier?", 36 | "whatisthis1": "Viele Unternehmen nutzen", 37 | "whatisthis2": "Dark Patterns,", 38 | "whatisthis3": "um es dir zu erschweren, Auskunft über deine Daten zu erhalten. JustGetMyData vereinfacht es dir, direkter Auskunft über deine Daten zu erhalten, sodass du weißt, was sie wissen (Wenn sie es dir sagen).", 39 | "whatisthis4": "Dir fehlt eine Seite?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/pl-PL.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "O aplikacji", 3 | "contribute": "Pomóż rozwijać aplikację na GitHub", 4 | "difficulty": "poziom trudności", 5 | "difficulty_easy": "łatwy", 6 | "difficulty_hard": "trudny", 7 | "difficulty_impossible": "niemożliwy", 8 | "difficulty_limited": "ograniczona dostępność", 9 | "difficulty_medium": "umiarkowany", 10 | "footercredits": "Stworzone przez", 11 | "footerlicense": "Ta treść jest publikowana na podstawie Międzynarodowej Licencji Creative Commons Attribution 4.0.", 12 | "guide": "Legenda", 13 | "guideeasy": "Prosty proces", 14 | "guideexplanations": "Powyższe odnośniki oznaczone są kolorami wskazującymi poziom trudności w uzyskiwaniu z nich danych:", 15 | "guidehard": "Nie można w pełni uzyskać skontaktowania się z obsługą klienta", 16 | "guideimpossible": "Nie można uzyskać", 17 | "guidelimited": "Nie można uzyskać bez weryfikacji, czy mieszkasz w obszarze objętym prawem ochrony prywatności", 18 | "guidemedium": "Uzyskanie danych wymaga podjęcia dodatkowych kroków", 19 | "hideinfo": "ukryj informacje...", 20 | "link_jdm": "Odwiedź JustDeleteMe", 21 | "link_jwtd": "Odwiedź JustWhatsTheData", 22 | "name": "Angielski", 23 | "noinfo": "Brak dostępnych informacji", 24 | "noresults": "Nie możesz znaleźć tego, czego szukasz?", 25 | "noresultshelp": "Pomóż ulepszyć JustGetMyData", 26 | "popular": "Popularne", 27 | "pullrequest": "Zgłoś poprawkę na GitHub", 28 | "reset": "Resetuj", 29 | "sendmail": "Wyślij e-mail", 30 | "showinfo": "pokaż informacje...", 31 | "tagline": "Katalog bezpośrednich odnośników do uzyskania swoich danych z usług internetowych.", 32 | "title": "Just Get My Data - Katalog bezpośrednich odnośników do uzyskania swoich danych z usług internetowych.", 33 | "translate": "Przetłumacz na Crowdin", 34 | "twitter": "Udostępnij Tweeta o nas", 35 | "whatisthis": "Co to jest?", 36 | "whatisthis1": "Wiele firm używa", 37 | "whatisthis2": "brudne sztuczki", 38 | "whatisthis3": "w celu utrudnienia informacji o uzyskiwaniu od nich swoich danych. JustGetMyData ma na celu utworzenie katalogu odnośników, dzięki którym w łatwy sposób możesz uzyskać swoje dane z usług internetowych.", 39 | "whatisthis4": "Brakuje tu jakiejkolwiek istotnej witryny?" 40 | } 41 | -------------------------------------------------------------------------------- /_data/trans/fr-FR.json: -------------------------------------------------------------------------------- 1 | { 2 | "about": "À propos", 3 | "contribute": "Contribuez sur GitHub", 4 | "difficulty": "difficulté", 5 | "difficulty_easy": "facile", 6 | "difficulty_hard": "difficile", 7 | "difficulty_impossible": "impossible", 8 | "difficulty_limited": "disponibilité limitée", 9 | "difficulty_medium": "moyen", 10 | "footercredits": "Créer par", 11 | "footerlicense": "Ce travail est concédé sous une licence internationale Creative Commons Attribution 4.0.", 12 | "guide": "Guide", 13 | "guideeasy": "Processus simple", 14 | "guideexplanations": "Les liens ci-dessus sont codés en couleur pour indiquer le niveau de difficulté d'obtention des données:", 15 | "guidehard": "Ne peut pas être entièrement obtenu sans contacter le service client", 16 | "guideimpossible": "Ne peut pas être obtenu", 17 | "guidelimited": "Ne peut être obtenu sans vérifier si vous vivez dans une zone appliquant des lois sur la vie privée", 18 | "guidemedium": "Quelques étapes supplémentaires nécessaires", 19 | "hideinfo": "afficher moins...", 20 | "link_jdm": "Visiter JustDeleteMe", 21 | "link_jwtd": "Visitez JustWhatsTheData", 22 | "name": "Français", 23 | "noinfo": "Aucune information disponible", 24 | "noresults": "Vous ne trouvez pas ce que vous recherchez ?", 25 | "noresultshelp": "Aide à améliorer JustGetMyData", 26 | "popular": "Populaire", 27 | "pullrequest": "Faire une demande d'ajout sur GitHub", 28 | "reset": "Réinitialiser", 29 | "sendmail": "Envoyer un mail", 30 | "showinfo": "afficher plus d'info ...", 31 | "tagline": "Un répertoire de liens vous permettant d'obtenir facilement vos données de services web.", 32 | "title": "Just Get My Data - Un répertoire de liens vous permettant d'obtenir facilement vos données de services web.", 33 | "translate": "Traduire sur Crowdin", 34 | "twitter": "Tweet JGMD", 35 | "whatisthis": "Qu'est-ce que c'est ?", 36 | "whatisthis1": "De nombreuses entreprises utilisent", 37 | "whatisthis2": "thème sombre", 38 | "whatisthis3": "afin qu'il soit difficile de trouver comment obtenir vos données. JustGetMyData vise à être un répertoire de liens vous permettant d'obtenir facilement vos données à partir de services web.", 39 | "whatisthis4": "Souhaitez-vous ajouter un site ?" 40 | } 41 | -------------------------------------------------------------------------------- /script/ping_websites.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # Prints sites.json entries containing links which may be out of operation or 4 | # unreachable 5 | 6 | require "net/http" 7 | require "json" 8 | 9 | # Taken from https://rossta.net/blog/a-ruby-antihero-thread-pool.html 10 | class ThreadPool 11 | def initialize(size) 12 | @size = size 13 | @jobs = Queue.new 14 | @pool = Array.new(@size) do |i| 15 | Thread.new do 16 | Thread.current[:id] = i 17 | catch(:exit) do 18 | loop do 19 | job, args = @jobs.pop 20 | job.call(*args) 21 | end 22 | end 23 | end 24 | end 25 | end 26 | 27 | # add a job to queue 28 | def schedule(*args, &block) 29 | @jobs << [block, args] 30 | end 31 | 32 | # run threads and perform jobs from queue 33 | def run! 34 | @size.times do 35 | schedule { throw :exit } 36 | end 37 | @pool.map(&:join) 38 | end 39 | end 40 | 41 | def url_exist(name, url_string) 42 | url = URI.parse(url_string.strip) 43 | res = Net::HTTP.get_response(url) 44 | if res.kind_of?(Net::HTTPRedirection) 45 | puts "Warning: entry #{name} redirected" 46 | elsif res.code == "404" 47 | STDERR.puts "Entry #{name} returned HTTP 404" 48 | end 49 | rescue Errno::EADDRNOTAVAIL, 50 | Errno::ECONNREFUSED, 51 | Errno::ECONNRESET, 52 | Errno::EHOSTUNREACH, 53 | Errno::ENETUNREACH, 54 | Errno::ENOENT, 55 | Errno::ETIMEDOUT, 56 | Net::OpenTimeout, 57 | Net::ReadTimeout, 58 | EOFError, 59 | SocketError => e 60 | # All categories where a site is most definitely non-operational 61 | puts "HTTP request failed to #{name}: #{e.inspect}" 62 | false 63 | rescue OpenSSL::SSL::SSLError 64 | # Websites with certificate errors are responding to requests 65 | true 66 | end 67 | 68 | json = JSON.parse(File.read('_data/sites.json')) 69 | pool = ThreadPool.new(20) 70 | # check if a website is alive 71 | json.each_with_index do |(key, _), i| 72 | name = key['name'] 73 | url = key['url'] 74 | pool.schedule(name, url) do |name , url| 75 | url_exist(name, url) 76 | end 77 | end 78 | pool.run! 79 | -------------------------------------------------------------------------------- /TRANSLATION_REFERENCE.md: -------------------------------------------------------------------------------- 1 | # Translation Reference 2 | 3 | This is a reference guide for translating, so that one can see where each key fits in the website. You can also [translate on Crowdin](https://crowdin.com/project/jgmd). 4 | 5 | ## Header 6 | 7 | - `title`: Website title and tagline 8 | - `name`: Language name 9 | - `tagline`: The slogan of the website 10 | - `about`: Button that skips to the end of the page until the credits 11 | - `contribute`: Button to go to the GitHub repository 12 | - `twitter`: Button to tweet about JDM 13 | 14 | ## Body 15 | 16 | - `popular`: Button to filter by popular websites 17 | - `difficulty`: Button to filter by a chosen difficulty 18 | - `reset`: Button to reset filtering 19 | - `noresults`: Description used when the filtering conditions lead to no results 20 | - `noresultshelp`: Description of hyperlink that takes to the JDM repository 21 | - `difficulty_easy`: Word for "easy" difficulty 22 | - `difficulty_medium`: Word for "medium" difficulty 23 | - `difficulty_hard`: Word for "hard" difficulty 24 | - `difficulty_limited`: Word for "limited availability" difficulty 25 | - `difficulty_impossible`: Word for "impossible" difficulty 26 | - `sendmail`: Text for hyperlink that opens up the new mail to be composed 27 | - `showinfo`: Text for button that shows notes of an entry 28 | - `hideinfo`: Text for button that hides notes of an entry 29 | - `noinfo`: Text shown when entry has no notes 30 | 31 | ## Footer 32 | 33 | - `whatisthis`: Title of the section with the explanation about the website 34 | - `whatisthis[1-3]`: Phrase that describes the website, pieced together as "`whatisthis1` `whatisthis2` `whatisthis3`". `whatisthis2` is the "dark patterns" hyperlink text 35 | - `whatisthis4`: Second paragraph explaining the website 36 | - `pullrequest`: Text for the hyperlink that takes to the JDM GitHub webpage 37 | - `guide`: Title for the section explaining how difficulties work 38 | - `guideexplanations`: Sentence introducing the guide 39 | - `guideeasy`: Short sentence explaining what "easy" means 40 | - `guidemedium`: Short sentence explaining what "medium" means 41 | - `guidehard`: Short sentence explaining what "hard" means 42 | - `guideimpossible`: Short sentence explaining what "impossible" means 43 | - `guidelimited`: Short sentence explaining what "limited availability" means 44 | - `footercredits`: Text to introduce creators 45 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ master ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ master ] 20 | schedule: 21 | - cron: '34 12 * * 4' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'javascript', 'ruby' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] 37 | # Learn more about CodeQL language support at https://git.io/codeql-language-support 38 | 39 | steps: 40 | - name: Checkout repository 41 | uses: actions/checkout@v2 42 | 43 | # Initializes the CodeQL tools for scanning. 44 | - name: Initialize CodeQL 45 | uses: github/codeql-action/init@v1 46 | with: 47 | languages: ${{ matrix.language }} 48 | # If you wish to specify custom queries, you can do so here or in a config file. 49 | # By default, queries listed here will override any specified in a config file. 50 | # Prefix the list here with "+" to use these queries and those in the config file. 51 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 52 | 53 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 54 | # If this step fails, then you should remove it and run the build manually (see below) 55 | - name: Autobuild 56 | uses: github/codeql-action/autobuild@v1 57 | 58 | # ℹ️ Command-line programs to run using the OS shell. 59 | # 📚 https://git.io/JvXDl 60 | 61 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 62 | # and modify them (or add more) to build your code if your project 63 | # uses a compiled language 64 | 65 | #- run: | 66 | # make bootstrap 67 | # make release 68 | 69 | - name: Perform CodeQL Analysis 70 | uses: github/codeql-action/analyze@v1 71 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ site.data.trans.[page.lang].title }} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | {% if page.lang == 'ar' or page.lang == 'fa' %} 24 | {% assign rtl = true %} 25 | {% else %} 26 | {% assign rtl = false %} 27 | {% endif %} 28 | 29 | 30 | 36 | 37 |
38 |

JustGetMyData

39 |

{{ site.data.trans.[page.lang].tagline }}

40 | 41 |

42 | 43 | {% assign sl = page.lang | split: "-" %} 44 | {{site.data.trans[page.lang].link_jdm }} 45 | {{site.data.trans[page.lang].contribute}} 46 | {{site.data.trans[page.lang].translate}} 47 | {{ site.data.trans.[page.lang].twitter }} 48 | {{site.data.trans[page.lang].link_jwtd }} 49 |

50 |
51 | -------------------------------------------------------------------------------- /assets/css/libs/jquery.dropdown.css: -------------------------------------------------------------------------------- 1 | .dropdown { 2 | position: absolute; 3 | z-index: 9999999; 4 | display: none; 5 | } 6 | 7 | .dropdown .dropdown-menu, 8 | .dropdown .dropdown-panel { 9 | min-width: 160px; 10 | max-width: 360px; 11 | list-style: none; 12 | background: #D4D8DC; 13 | border: solid 1px #DDD; 14 | border: solid 1px rgba(0, 0, 0, .2); 15 | /*border-radius: 6px;*/ 16 | box-shadow: 0 5px 10px rgba(0, 0, 0, .2); 17 | overflow: visible; 18 | padding: 4px 0; 19 | margin: 0; 20 | } 21 | 22 | .dropdown .dropdown-panel { 23 | padding: 10px; 24 | } 25 | 26 | .dropdown.dropdown-tip { 27 | margin-top: 8px; 28 | } 29 | 30 | .dropdown.dropdown-tip:before { 31 | position: absolute; 32 | top: -6px; 33 | left: 9px; 34 | content: ''; 35 | border-left: 7px solid transparent; 36 | border-right: 7px solid transparent; 37 | border-bottom: 7px solid #CCC; 38 | border-bottom-color: rgba(0, 0, 0, 0.2); 39 | display: inline-block; 40 | } 41 | 42 | .dropdown.dropdown-tip.dropdown-anchor-right:before { 43 | left: auto; 44 | right: 9px; 45 | } 46 | 47 | .dropdown.dropdown-tip:after { 48 | position: absolute; 49 | top: -5px; 50 | left: 10px; 51 | content: ''; 52 | border-left: 6px solid transparent; 53 | border-right: 6px solid transparent; 54 | border-bottom: 6px solid #D4D8DC; 55 | display: inline-block; 56 | } 57 | 58 | .dropdown.dropdown-tip.dropdown-anchor-right:after { 59 | left: auto; 60 | right: 10px; 61 | } 62 | 63 | 64 | .dropdown.dropdown-scroll .dropdown-menu, 65 | .dropdown.dropdown-scroll .dropdown-panel { 66 | max-height: 358px; 67 | overflow: auto; 68 | } 69 | 70 | .dropdown .dropdown-menu LI { 71 | list-style: none; 72 | padding: 0 0; 73 | margin: 0; 74 | line-height: 18px; 75 | } 76 | 77 | .dropdown .dropdown-menu LI > A, 78 | .dropdown .dropdown-menu LABEL { 79 | display: block; 80 | color: #555; 81 | text-decoration: none; 82 | line-height: 18px; 83 | padding: 3px 15px; 84 | white-space: nowrap; 85 | } 86 | 87 | .dropdown .dropdown-menu LI > A:hover, 88 | .dropdown .dropdown-menu LABEL:hover { 89 | background-color: #798287; 90 | color: #FFF; 91 | cursor: pointer; 92 | } 93 | 94 | .dropdown .dropdown-menu .dropdown-divider { 95 | font-size: 1px; 96 | border-top: solid 1px #E5E5E5; 97 | padding: 0; 98 | margin: 5px 0; 99 | } 100 | 101 | /* Icon Examples - icons courtesy of http://p.yusukekamiyamane.com/ */ 102 | .dropdown.has-icons LI > A { 103 | padding-left: 30px; 104 | background-position: 8px center; 105 | background-repeat: no-repeat; 106 | } 107 | 108 | .dropdown .undo A { background-image: url(icons/arrow-curve-180-left.png); } 109 | .dropdown .redo A { background-image: url(icons/arrow-curve.png); } 110 | .dropdown .cut A { background-image: url(icons/scissors.png); } 111 | .dropdown .copy A { background-image: url(icons/document-copy.png); } 112 | .dropdown .paste A { background-image: url(icons/clipboard.png); } 113 | .dropdown .delete A { background-image: url(icons/cross-script.png); } -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.8.7) 5 | public_suffix (>= 2.0.2, < 7.0) 6 | base64 (0.3.0) 7 | bigdecimal (3.3.1) 8 | colorator (1.1.0) 9 | concurrent-ruby (1.3.5) 10 | csv (3.3.5) 11 | em-websocket (0.5.3) 12 | eventmachine (>= 0.12.9) 13 | http_parser.rb (~> 0) 14 | ethon (0.15.0) 15 | ffi (>= 1.15.0) 16 | eventmachine (1.2.7) 17 | ffi (1.17.2) 18 | ffi (1.17.2-x64-mingw-ucrt) 19 | ffi (1.17.2-x86_64-linux-gnu) 20 | forwardable-extended (2.6.0) 21 | google-protobuf (4.32.1) 22 | bigdecimal 23 | rake (>= 13) 24 | google-protobuf (4.32.1-x64-mingw-ucrt) 25 | bigdecimal 26 | rake (>= 13) 27 | google-protobuf (4.32.1-x86_64-linux-gnu) 28 | bigdecimal 29 | rake (>= 13) 30 | html-proofer (3.19.4) 31 | addressable (~> 2.3) 32 | mercenary (~> 0.3) 33 | nokogiri (~> 1.13) 34 | parallel (~> 1.10) 35 | rainbow (~> 3.0) 36 | typhoeus (~> 1.3) 37 | yell (~> 2.0) 38 | http_parser.rb (0.8.0) 39 | i18n (1.14.7) 40 | concurrent-ruby (~> 1.0) 41 | jekyll (4.4.1) 42 | addressable (~> 2.4) 43 | base64 (~> 0.2) 44 | colorator (~> 1.0) 45 | csv (~> 3.0) 46 | em-websocket (~> 0.5) 47 | i18n (~> 1.0) 48 | jekyll-sass-converter (>= 2.0, < 4.0) 49 | jekyll-watch (~> 2.0) 50 | json (~> 2.6) 51 | kramdown (~> 2.3, >= 2.3.1) 52 | kramdown-parser-gfm (~> 1.0) 53 | liquid (~> 4.0) 54 | mercenary (~> 0.3, >= 0.3.6) 55 | pathutil (~> 0.9) 56 | rouge (>= 3.0, < 5.0) 57 | safe_yaml (~> 1.0) 58 | terminal-table (>= 1.8, < 4.0) 59 | webrick (~> 1.7) 60 | jekyll-analytics (0.1.14) 61 | jekyll-sass-converter (3.1.0) 62 | sass-embedded (~> 1.75) 63 | jekyll-watch (2.2.1) 64 | listen (~> 3.0) 65 | json (2.15.1) 66 | kramdown (2.5.1) 67 | rexml (>= 3.3.9) 68 | kramdown-parser-gfm (1.1.0) 69 | kramdown (~> 2.0) 70 | liquid (4.0.4) 71 | listen (3.9.0) 72 | rb-fsevent (~> 0.10, >= 0.10.3) 73 | rb-inotify (~> 0.9, >= 0.9.10) 74 | mercenary (0.4.0) 75 | mini_portile2 (2.8.9) 76 | nokogiri (1.18.10) 77 | mini_portile2 (~> 2.8.2) 78 | racc (~> 1.4) 79 | nokogiri (1.18.10-x64-mingw-ucrt) 80 | racc (~> 1.4) 81 | nokogiri (1.18.10-x86_64-linux-gnu) 82 | racc (~> 1.4) 83 | parallel (1.27.0) 84 | pathutil (0.16.2) 85 | forwardable-extended (~> 2.6) 86 | public_suffix (6.0.2) 87 | racc (1.8.1) 88 | rainbow (3.1.1) 89 | rake (13.3.0) 90 | rb-fsevent (0.11.2) 91 | rb-inotify (0.11.1) 92 | ffi (~> 1.0) 93 | rexml (3.4.4) 94 | rouge (4.6.1) 95 | safe_yaml (1.0.5) 96 | sass-embedded (1.93.2) 97 | google-protobuf (~> 4.31) 98 | rake (>= 13) 99 | sass-embedded (1.93.2-x64-mingw-ucrt) 100 | google-protobuf (~> 4.31) 101 | sass-embedded (1.93.2-x86_64-linux-gnu) 102 | google-protobuf (~> 4.31) 103 | terminal-table (3.0.2) 104 | unicode-display_width (>= 1.1.1, < 3) 105 | typhoeus (1.5.0) 106 | ethon (>= 0.9.0, < 0.16.0) 107 | unicode-display_width (2.6.0) 108 | webrick (1.9.1) 109 | yell (2.2.2) 110 | 111 | PLATFORMS 112 | ruby 113 | x64-mingw-ucrt 114 | x86_64-linux-gnu 115 | 116 | DEPENDENCIES 117 | ffi (>= 1.15.5) 118 | html-proofer (= 3.19.4) 119 | jekyll (~> 4.3) 120 | jekyll-analytics (~> 0.1.14) 121 | webrick (~> 1.7) 122 | 123 | BUNDLED WITH 124 | 2.7.2 125 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | The sites, urls and additional notes are stored in `_data/sites.json`. If you want to add a site to the list you'll need the following information: 4 | 5 | - `name`: The name of the service. 6 | - `url`: The url of the account data request page. If no such page exists, the url should be a contact or help page explaining the process for requesting account data. 7 | - `url_CODE`: _(optional)_ Use the language `CODE` as suffix of the url field to provide language-specific data request codes, shown on the respective language page. 8 | - `difficulty`: This is an indicator used on the site to determine the difficulty of requesting account data. Use one of: 9 | - `easy`: Sites with a simple process such as a 'download account' button 10 | - `medium`: Sites that do allow account data requests but require you to perform additional steps 11 | - `hard`: Sites that require you to contact customer services or those that don't allow automatic or easy account data requests 12 | - `limited`: Sites that require you to verify that you live in an area with privacy laws before accessing your data 13 | - `impossible`: For sites where it's basically impossible to totally request your account data, even if you contact them 14 | - `notes`: Notes will be shown when someone hovers on that service. Notes may include additional information you might need to request your account data or consequences of requesting your account data. 15 | - `notes_CODE`: _(optional)_ Use the language `CODE` as suffix of the `notes` field to provide language-specific instructions, shown on the respective language page. 16 | - `email`: _(optional)_ If you have to send an email to a company to request your account data, add the email address here. We'll do the rest. 17 | - `email_subject`: _(optional)_ Set the subject for the email link. If unset, the default text is "Account Data Request". 18 | - `email_body`: _(optional)_ Set the body for the email link. If unset, the default text is "Please send me my account data. My username is XXXXXX". 19 | 20 | ## Contribution checklist 21 | 22 | 1. Have you updated to the latest version of the project? `git pull` 23 | 2. If you have modified an existing service's difficulty, please explain why/give sources. 24 | 3. URLs must be direct links to either account data request, or if this is not available, a relevant help article. 25 | 4. Any steps for the process should be detailed in the notes (if necessary). 26 | 5. Be sure to indent 4 spaces per level. 27 | 6. Be sure to place your entry ALPHABETICALLY in the current list. 28 | 7. Please test that your changes work validating `sites.json` with something like [JSON Lint](http://jsonlint.com/) or the included "validate_json.rb" script 29 | 30 | ## Translation 31 | 32 | If you want to help on the translation of the site, you can read [translation reference](TRANSLATION_REFERENCE.md) to see what each of the keys is describing or translating. 33 | 34 | ### Modify an existing Translation 35 | 36 | Look for the `CODE.json` file in the `_data/trans/` directory where `CODE` is your [short country code](https://en.wikipedia.org/wiki/Country_code) 37 | 38 | ### Add a new translation 39 | 40 | 1. Create a new `CODE.json` file in the `_data/trans/` directory where `CODE` is your [short country code](https://en.wikipedia.org/wiki/Country_code) 41 | 2. Copy the contents of `en.json` to your new file 42 | 3. Translate each line 43 | 4. Within the `_pages/` directory, copy `_pages/index.html` to a new `CODE.html` file, and update the `lang: CODE` line to match the new page's code 44 | 5. Visit [gosquared/flags](https://github.com/gosquared/flags/tree/master/flags/flags-iso/shiny) and get the shiny 16px and 24px flags for your language. 45 | 6. Save the flag icons onto `assets/icons` as `CODE16.png` and `CODE24.png`, where `CODE` is your short country code. 46 | 7. On `assets/css/style.css` insert a `dropdown` and a `background-image` that reference these flags. 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | JustGetMyData 2 | ============ 3 | 4 | A directory of direct links for you to obtain your personal information from web services. 5 | This is a fork of [Just Delete Me](https://justdeleteme.xyz/) 6 | 7 | [![Codacy Badge](https://app.codacy.com/project/badge/Grade/3b1d799740f64a85a5616951ef1d5ed3)](https://www.codacy.com/gh/justgetmydata/jgmd/dashboard?utm_source=github.com&utm_medium=referral&utm_content=justgetmydata/jgmd&utm_campaign=Badge_Grade) 8 | [![Crowdin](https://badges.crowdin.net/jgmd/localized.svg)](https://crowdin.com/project/jgmd) 9 | 10 | ## Building Locally 11 | 12 | Just Get My Data is built using [Jekyll](https://jekyllrb.com/) and is linted and 13 | validated using a mixture of Ruby and Node.js packages and scripts. 14 | 15 | **Dependencies:** 16 | 17 | - [Ruby](https://www.ruby-lang.org) (>=2.6.6) 18 | - [Node.js](https://nodejs.org) 19 | 20 | **Installation** 21 | 22 | - Clone the repository 23 | 24 | ``` 25 | git clone https://github.com/justgetmydata/jgmd.git 26 | ``` 27 | 28 | - Install dependencies 29 | 30 | ``` 31 | cd jgmd 32 | gem install bundler 33 | bundle install 34 | ``` 35 | 36 | **Building the site** 37 | 38 | Just run `jekyll serve` 39 | 40 | **Testing** 41 | 42 | Tests are run via the "cibuild" script, and can be run via `./script/cibuild` 43 | 44 | ## Contributing 45 | 46 | ### Translating 47 | You can translate the main text of the page by contributing on [Crowdin](https://crowdin.com/project/jgmd) 48 | If you want to help, do read our [contributing](CONTRIBUTING.md) guidelines. 49 | 50 | ### Hosting 51 | This webpage is deployed on [ipfs](ipns://justgetmydata.com/), so you can just pin our website and the load will be distributed to your node too. This is helping too! 52 | 53 | ``` 54 | $ ipfs pin add /ipns/justgetmydata.com 55 | pinned QmfGFHursWoKmtuiKfWzfYMg3W1D8R5bbd4AFmxe65h6rV recursively 56 | ``` 57 | ## Misc 58 | 59 | Search functionality modified from [DevCenter.me](https://github.com/stevestreza/DevCenter.me). 60 | 61 | ## On Media 62 | - [![](assets/icons/flags/en-US16.png) Vice](https://www.vice.com/en/article/88avkp/this-simple-tool-will-help-you-see-what-websites-know-about-you) 63 | - [![](assets/icons/flags/tr-TR16.png) Webtekno](https://www.webtekno.com/sitelerin-depoladigi-kisisel-bilgileri-nasil-alabilirsiniz-h104601.html) 64 | - [![](assets/icons/flags/es-ES16.png) Vice](https://www.vice.com/es/article/88avkp/sencilla-herramienta-ayudara-ver-lo-que-sitios-web-saben-sobre-ti) 65 | - [![](assets/icons/flags/hu-HU16.png) Raketa.hu](https://raketa.hu/adatok-amiket-a-cegek-gyujtenek-rolunk) 66 | - [![](assets/icons/flags/ar-MA16.png) Wafera (Arabic)](https://www.wafera.com/2021/01/this-tool-will-help-you-know-what.html) 67 | - [![](assets/icons/flags/tr-TR16.png) NTV](https://www.ntv.com.tr/teknoloji/internet-sitelerinde-depolanan-verilerinizi-kopyalamanin-kolay-yolu-justgetmydata,MRKREYsoekaGXjf3D-KGtQ) 68 | - [![](assets/icons/flags/en-US16.png) Komando](https://www.komando.com/security-privacy/justgetmydata-data-collection-tool/773214/) 69 | - [![](assets/icons/flags/es-ES16.png) LiGNUx.com](https://lignux.com/justgetmydata-accede-a-tus-datos-de-distintos-servicios-web/) 70 | - [![](assets/icons/flags/fr-FR16.png) Les Numeriques](https://www.lesnumeriques.com/vie-du-net/justgetmydata-le-site-qui-vous-aide-a-recuperer-une-copie-de-vos-donnees-personnelles-n159037.html) 71 | - [![](assets/icons/flags/en-US16.png) Aroged](https://www.aroged.com/2021/01/10/justgetmydata-the-site-that-helps-you-get-a-copy-of-your-personal-data/) 72 | - [![](assets/icons/flags/he-IL16.png) אלכסון](https://alaxon.co.il/fomo/%D7%9E%D7%94-%D7%99%D7%95%D7%93%D7%A2%D7%99%D7%9D-%D7%A2%D7%9C%D7%99%D7%A0%D7%95/) 73 | - [![](assets/icons/flags/en-US16.png)Tech Gaming Report](https://www.techgamingreport.com/justgetmydata-the-web-site-that-aids-you-receive-a-duplicate-of-your-private-details/) 74 | - [![](assets/icons/flags/en-US16.png) Tech Times](https://www.techtimes.com/articles/255795/20210111/data-privacy-protection-see-what-websites.htm) 75 | - [![](assets/icons/flags/tr-TR16.png) Samsun Haber Hatti](https://www.samsunhaberhatti.com/haber/hangi-site-bilgilerinizi-depoluyor/202824) 76 | - [![](assets/icons/flags/sr16.png) Mondo](https://mondo.rs/MobIT/Tips-and-tricks/a1421782/kako-obrisati-profil-drustvene-mreze-facebook-twitter-amazon-whatsapp-problem-instagram.html) 77 | - [![](assets/icons/flags/en-GB16.png) Digital Information World](https://www.digitalinformationworld.com/2021/01/justgetmydata-provides-users-with.html#) 78 | - [![](assets/icons/flags/en-US16.png) MakeUseOf](https://www.makeuseof.com/what-major-tech-knows-about-you/) 79 | 80 | 81 | ## License 82 | 83 | Licensed under the MIT License (MIT). See `LICENSE`. 84 | 85 | Country Flag Icons Copyright (c) 2017 Go Squared Ltd. https://www.gosquared.com/resources/flag-icons/ 86 | 87 | DevCenter.me Copyright (c) 2013 Steve Streza 88 | 89 | This is a detached fork of [Just Delete Me](https://justdeleteme.xyz/) 90 | 91 | Created by Students of the [Complutense University of Madrid](https://www.ucm.es/) as a project for the Ethics, Legislation and Profession course. You can find more info [here](https://wikis.fdi.ucm.es/ELP/Trabajo:JustGetMyData). 92 | -------------------------------------------------------------------------------- /assets/js/libs/jquery.dropdown.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery dropdown: A simple dropdown plugin 3 | * 4 | * Inspired by Bootstrap: http://twitter.github.com/bootstrap/javascript.html#dropdowns 5 | * 6 | * Copyright 2013 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/) 7 | * 8 | * Dual licensed under the MIT / GPL Version 2 licenses 9 | * 10 | */ 11 | if (jQuery) (function ($) { 12 | 13 | $.extend($.fn, { 14 | dropdown: function (method, data) { 15 | 16 | switch (method) { 17 | case 'show': 18 | show(null, $(this)); 19 | return $(this); 20 | case 'hide': 21 | hide(); 22 | return $(this); 23 | case 'attach': 24 | return $(this).attr('data-dropdown', data); 25 | case 'detach': 26 | hide(); 27 | return $(this).removeAttr('data-dropdown'); 28 | case 'disable': 29 | return $(this).addClass('dropdown-disabled'); 30 | case 'enable': 31 | hide(); 32 | return $(this).removeClass('dropdown-disabled'); 33 | } 34 | 35 | } 36 | }); 37 | 38 | function show(event, object) { 39 | 40 | var trigger = event ? $(this) : object, 41 | dropdown = $(trigger.attr('data-dropdown')), 42 | isOpen = trigger.hasClass('dropdown-open'); 43 | 44 | // In some cases we don't want to show it 45 | if (event) { 46 | if ($(event.target).hasClass('dropdown-ignore')) return; 47 | 48 | event.preventDefault(); 49 | event.stopPropagation(); 50 | } else { 51 | if (trigger !== object.target && $(object.target).hasClass('dropdown-ignore')) return; 52 | } 53 | hide(); 54 | 55 | if (isOpen || trigger.hasClass('dropdown-disabled')) return; 56 | 57 | // Show it 58 | trigger.addClass('dropdown-open'); 59 | dropdown 60 | .data('dropdown-trigger', trigger) 61 | .show(); 62 | 63 | // Position it 64 | position(); 65 | 66 | // Trigger the show callback 67 | dropdown 68 | .trigger('show', { 69 | dropdown: dropdown, 70 | trigger: trigger 71 | }); 72 | 73 | } 74 | 75 | function hide(event) { 76 | 77 | // In some cases we don't hide them 78 | var targetGroup = event ? $(event.target).parents().addBack() : null; 79 | 80 | // Are we clicking anywhere in a dropdown? 81 | if (targetGroup && targetGroup.is('.dropdown')) { 82 | // Is it a dropdown menu? 83 | if (targetGroup.is('.dropdown-menu')) { 84 | // Did we click on an option? If so close it. 85 | if (!targetGroup.is('A')) return; 86 | } else { 87 | // Nope, it's a panel. Leave it open. 88 | return; 89 | } 90 | } 91 | 92 | // Hide any dropdown that may be showing 93 | $(document).find('.dropdown:visible').each(function () { 94 | var dropdown = $(this); 95 | dropdown 96 | .hide() 97 | .removeData('dropdown-trigger') 98 | .trigger('hide', { dropdown: dropdown }); 99 | }); 100 | 101 | // Remove all dropdown-open classes 102 | $(document).find('.dropdown-open').removeClass('dropdown-open'); 103 | 104 | } 105 | 106 | function position() { 107 | 108 | var dropdown = $('.dropdown:visible').eq(0), 109 | trigger = dropdown.data('dropdown-trigger'), 110 | hOffset = trigger ? parseInt(trigger.attr('data-horizontal-offset') || 0, 10) : null, 111 | vOffset = trigger ? parseInt(trigger.attr('data-vertical-offset') || 0, 10) : null; 112 | 113 | if (dropdown.length === 0 || !trigger) return; 114 | 115 | // Position the dropdown relative-to-parent... 116 | if (dropdown.hasClass('dropdown-relative')) { 117 | dropdown.css({ 118 | left: dropdown.hasClass('dropdown-anchor-right') ? 119 | trigger.position().left - (dropdown.outerWidth(true) - trigger.outerWidth(true)) - parseInt(trigger.css('margin-right')) + hOffset : 120 | trigger.position().left + parseInt(trigger.css('margin-left')) + hOffset, 121 | top: trigger.position().top + trigger.outerHeight(true) - parseInt(trigger.css('margin-top')) + vOffset 122 | }); 123 | } else { 124 | // ...or relative to document 125 | dropdown.css({ 126 | left: dropdown.hasClass('dropdown-anchor-right') ? 127 | trigger.offset().left - (dropdown.outerWidth() - trigger.outerWidth()) + hOffset : trigger.offset().left + hOffset, 128 | top: trigger.offset().top + trigger.outerHeight() + vOffset 129 | }); 130 | } 131 | } 132 | 133 | $(document).on('click.dropdown', '[data-dropdown]', show); 134 | $(document).on('click.dropdown', hide); 135 | $(window).on('resize', position); 136 | 137 | })(jQuery); 138 | -------------------------------------------------------------------------------- /assets/js/scripts.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | // Helper function to show all except filtered sites 3 | // Accepts a function which returns true for $(".site-block") elements 4 | // matching desired qualifications 5 | function hideFilteredSites(filterFunction) { 6 | var $sites = $(".sites section"); 7 | $sites.show().filter(filterFunction).hide(); 8 | if ( ! $(".site-block").is(":visible")) { 9 | $(".no-results").show(); 10 | } 11 | } 12 | 13 | function setWindowHash(value) { 14 | window.location.hash = value; 15 | } 16 | 17 | function getDecodedWindowHash() { 18 | return decodeURIComponent(window.location.hash); 19 | } 20 | 21 | // Search function 22 | function updateSearch() { 23 | if ($(".no-results").is(":visible")) { 24 | $(".no-results").hide(); 25 | } 26 | 27 | var hash = getDecodedWindowHash(); 28 | var term = hash.substr(1); 29 | 30 | hideFilteredSites(function() { 31 | var siteHeader = $(this).find(".site-header")[0]; 32 | var siteTitle = siteHeader.innerText.trim().toLowerCase(); 33 | var siteUrl = siteHeader.href.toLowerCase(); 34 | var lowerTerm = term.toLowerCase(); 35 | 36 | // returns true if lowerTerm isn"t found in site title or URL 37 | return Math.max(siteTitle.indexOf(lowerTerm), siteUrl.indexOf(lowerTerm)) === -1; 38 | }); 39 | 40 | // Insert the term into the search field 41 | // (sometimes this is missed if the hash is changed directly) 42 | $("#search").val(term); 43 | } 44 | 45 | $("body").addClass("js-on"); 46 | 47 | // A - Z filtering 48 | $(".alpha-sort a").click(function(e){ 49 | e.preventDefault(); 50 | var term = $(this).text().toLowerCase(); 51 | 52 | hideFilteredSites(function() { 53 | var text = $(this).find(".site-header").text().trim().toLowerCase().substr(0,1); 54 | return !~text.indexOf(term); 55 | }); 56 | }); 57 | 58 | // 0 - 9 filtering 59 | $(".num-sort a").click(function(e){ 60 | e.preventDefault(); 61 | var term = $(this).text().toLowerCase(); 62 | 63 | hideFilteredSites(function() { 64 | var text = $(this).find(".site-header").text().trim().toLowerCase().substr(0,1); 65 | return !~text.indexOf(term); 66 | }); 67 | }); 68 | 69 | // Difficulty filtering 70 | $(".diff-sort a").click(function(e){ 71 | e.preventDefault(); 72 | var term = $(this).text().toLowerCase(); 73 | 74 | hideFilteredSites(function() { 75 | var text = $(this).find(".site-difficulty").text().trim().toLowerCase(); 76 | return !~text.indexOf(term); 77 | }); 78 | }); 79 | 80 | // Popular filtering 81 | $("button.popular").click(function(e){ 82 | e.preventDefault(); 83 | var term = "popular"; 84 | 85 | hideFilteredSites(function() { 86 | return typeof $(this)[0].dataset["popular"] === "undefined"; 87 | }); 88 | }); 89 | 90 | // Clear search and filtering 91 | $("button.reset").click(function(e){ 92 | var $sites = $(".sites section"); 93 | $sites.show(); 94 | $(".no-results").hide(); 95 | $("input").val(""); 96 | if (window.location.href.includes("#") && getDecodedWindowHash()) { 97 | setWindowHash(""); 98 | } 99 | }); 100 | 101 | // Toggle visibility of site info boxes 102 | $(".contains-info").click(function(e) { 103 | e.preventDefault(); 104 | if ($(this).prev().hasClass("toggled")) { 105 | $(this).prev().slideToggle().removeClass("toggled"); 106 | } else { 107 | $(".toggled").slideToggle().removeClass("toggled"); 108 | $(this).prev().slideToggle().addClass("toggled"); 109 | } 110 | }); 111 | 112 | // When the search field changes, update the hash 113 | var hashUpdateTimer; 114 | $("input").on("input", function(){ 115 | window.clearTimeout(hashUpdateTimer); 116 | hashUpdateTimer = setTimeout(setWindowHash, 250, $(this).val()); 117 | }); 118 | 119 | // Call updateSearch when hash changes 120 | $(window).on("hashchange", function() { 121 | updateSearch(); 122 | }); 123 | 124 | // Update search results on page load (if there is a hash) 125 | if (getDecodedWindowHash() && getDecodedWindowHash() !== "#") { 126 | // Insert the term into the field 127 | $("#search").val(getDecodedWindowHash().substr(1)); 128 | 129 | // Update the results 130 | updateSearch(); 131 | } 132 | 133 | // jQuery ScrollTo plugin from http://lions-mark.com/jquery/scrollTo/ 134 | 135 | $.fn.scrollTo = function(target, options, callback ) { 136 | if(typeof options === "function" && arguments.length === 2){ callback = options; options = target; } 137 | var settings = $.extend({ 138 | scrollTarget : target, 139 | offsetTop : 50, 140 | duration : 500, 141 | easing : "swing" 142 | }, options); 143 | return this.each(function() { 144 | var scrollPane = $(this); 145 | var scrollTarget = (typeof settings.scrollTarget === "number") ? settings.scrollTarget : $(settings.scrollTarget); 146 | var scrollY = (typeof scrollTarget === "number") ? scrollTarget : scrollTarget.offset().top + scrollPane.scrollTop() - parseInt(settings.offsetTop); 147 | scrollPane.animate({scrollTop : scrollY }, parseInt(settings.duration), settings.easing, function(){ 148 | if (typeof callback === "function") { callback.call(this); } 149 | }); 150 | }); 151 | }; 152 | 153 | // Banner scroll to bottom 154 | $(".banner").click(function(e) { 155 | e.preventDefault(); 156 | $("body,html").scrollTo(".banner-block"); 157 | }); 158 | $(".info").click(function(e) { 159 | e.preventDefault(); 160 | $("body,html").scrollTo(".about"); 161 | }); 162 | 163 | // Auto-focus search field on load 164 | $("#search").focus(); 165 | }); 166 | -------------------------------------------------------------------------------- /script/validate_json.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # Validates JSON files in the _data directory 4 | 5 | require 'json' 6 | 7 | module ExitCodes 8 | SUCCESS = 0 9 | PARSE_FAILED = 1 # JSON parse errors 10 | UNSORTED = 2 # data keys are not in alphanumeric order 11 | MISSING_URL = 3 # Entry missing the required 'url' field 12 | MISSING_DIFFICULTY = 4 # Entry missing the required 'difficulty' field 13 | MISSING_DOMAINS = 5 # Entry missing the required 'domains' field 14 | MISSING_LANGUAGE_KEYS = 6 # Translation missing required keys 15 | MISSING_NAME = 7 # Entry missing the required 'name' field 16 | UNEXPECTED_DIFFICULTY = 8 # Unexpected value for 'difficulty' field 17 | UNEXPECTED_LANGUAGE = 9 # Unexpected language code for 'url_code' field 18 | UNEXPECTED_LANGUAGE_KEY = 10 # Unexpected language key for translation 19 | UNSUPPORTED_FIELD = 11 # Unsupported field for site entry 20 | UNEXPECTED_NOTES = 12 # Unexpected notes key for translation 21 | DUPLICATES = 13 # Duplicate entries 22 | end 23 | 24 | SupportedDifficulties = ["easy", "medium", "hard", "limited", "impossible"] 25 | SupportedEntryKeys = ["difficulty", "email", "email_body", "email_subject", "meta", "name", "notes", "url"] 26 | SupportedLanguageKeys = ["about", "contribute", "difficulty", "difficulty_easy", "difficulty_hard", "difficulty_impossible", 27 | "difficulty_limited", "difficulty_medium", "footercredits", "footerlicense", 28 | "guide", "guideeasy", "guideexplanations", "guidehard", "guideimpossible", "guidelimited", 29 | "guidemedium", "hideinfo", "link_jdm", "link_jwtd", "name", "noinfo", "noresults", "noresultshelp", 30 | "popular", "pullrequest", "reset", "sendmail", "showinfo", "tagline", "title", "translate","twitter", "whatisthis", 31 | "whatisthis1", "whatisthis2", "whatisthis3", "whatisthis4"] 32 | 33 | def get_supported_languages() 34 | return translation_files = Dir.children('_data/trans/').map { |f| f.delete_suffix('.json') } 35 | end 36 | 37 | SupportedLanguages = get_supported_languages() 38 | 39 | def get_transformed_name(site_object) 40 | return site_object['name'].downcase.sub(/^the\s+/, '') 41 | end 42 | 43 | def validate_accepted_keys(key) 44 | key.keys.each do |entry_key| 45 | if entry_key.start_with?('url_') || entry_key.start_with?('notes_') 46 | # These have their own validation methods 47 | next 48 | end 49 | 50 | unless SupportedEntryKeys.include?(entry_key) 51 | STDERR.puts "Entry '#{key['name']}' has unsupported field: "\ 52 | "'#{entry_key}'.\n"\ 53 | "Use one of the supported fields:\n"\ 54 | "\t#{SupportedEntryKeys}" 55 | exit ExitCodes::UNSUPPORTED_FIELD 56 | end 57 | end 58 | end 59 | 60 | def error_on_missing_field(key, field, exit_code) 61 | unless key.key?(field) 62 | STDERR.puts "Entry '#{key['name']}' has no '#{field}' field" 63 | exit exit_code 64 | end 65 | end 66 | 67 | def warning_on_missing_field(key, field) 68 | unless key.key?(field) 69 | STDERR.puts "Entry '#{key['name']}' has no '#{field}' field" 70 | end 71 | end 72 | 73 | def validate_difficulty(key) 74 | difficulty = key['difficulty'] 75 | unless SupportedDifficulties.include?(difficulty) 76 | STDERR.puts "Entry '#{key['name']}' has unexpected 'difficulty' field:"\ 77 | "'#{difficulty}'.\n"\ 78 | "Use one of the supported difficulty values:\n"\ 79 | "\t#{SupportedDifficulties}" 80 | exit ExitCodes::UNEXPECTED_DIFFICULTY 81 | end 82 | end 83 | 84 | def validate_localized_urls(key) 85 | key.keys.each do |entry_key| 86 | if entry_key.start_with?('url_') && !SupportedLanguages.any? { |lang| entry_key.eql?("url_#{lang}") } 87 | STDERR.puts "Entry '#{key['name']}' has unrecognized language code: "\ 88 | "'#{entry_key}'.\n"\ 89 | "Use one of the supported languages:\n"\ 90 | "\t#{SupportedLanguages}" 91 | exit ExitCodes::UNEXPECTED_LANGUAGE 92 | end 93 | end 94 | end 95 | 96 | def validate_localized_notes(key) 97 | key.keys.each do |entry_key| 98 | if entry_key.start_with?('notes_') && !SupportedLanguages.any? { |lang| entry_key.eql?("notes_#{lang}") } 99 | STDERR.puts "Entry '#{key['name']}' has unrecognized notes code: "\ 100 | "'#{entry_key}'.\n"\ 101 | "Use one of the supported languages:\n"\ 102 | "\t#{SupportedLanguages}" 103 | exit ExitCodes::UNEXPECTED_NOTES 104 | end 105 | end 106 | end 107 | 108 | def validate_website_entry(key, i) 109 | unless key.key?('name') 110 | STDERR.puts "Entry #{i} has no 'name' field" 111 | exit ExitCodes::MISSING_NAME 112 | end 113 | validate_accepted_keys(key) 114 | error_on_missing_field(key, 'url', ExitCodes::MISSING_URL) 115 | error_on_missing_field(key, 'difficulty', ExitCodes::MISSING_DIFFICULTY) 116 | validate_difficulty(key) 117 | validate_localized_urls(key) 118 | validate_localized_notes(key) 119 | end 120 | 121 | def add_valid_language_key(keys_in_language_json, key, file) 122 | if SupportedLanguageKeys.include?(key) 123 | keys_in_language_json << key 124 | else 125 | STDERR.puts "Invalid key '#{key}' for file '#{file}'" 126 | exit ExitCodes::UNEXPECTED_LANGUAGE_KEY 127 | end 128 | end 129 | 130 | def validate_site_translation(is_sites_json, keys_in_language_json, file) 131 | unless is_sites_json 132 | unless keys_in_language_json == SupportedLanguageKeys 133 | STDERR.puts "Missing language keys in '#{file}': "\ 134 | "'#{SupportedLanguageKeys - keys_in_language_json}'" 135 | exit ExitCodes::MISSING_LANGUAGE_KEYS 136 | end 137 | end 138 | end 139 | 140 | json_files = Dir.glob('_data/**/*').select { |f| File.file?(f) } 141 | json_files.each do |file| 142 | begin 143 | json = JSON.parse(File.read(file)) 144 | is_sites_json = File.basename(file) =~ /sites.json/ 145 | keys_in_language_json = [] 146 | 147 | # check for duplicates 148 | if json.uniq.length != json.length 149 | STDERR.puts file + " contains duplicates" 150 | exit ExitCodes::DUPLICATES 151 | end 152 | 153 | # check for alphabetical ordering 154 | json.each_with_index do |(key, _), i| 155 | # sites.json is an array of objects; this would expand to: 156 | # key = { ... } 157 | # i = 0 158 | # hence, the key variable holds the actual value 159 | if is_sites_json 160 | validate_website_entry(key, i) 161 | name = get_transformed_name(key) 162 | prev_name = get_transformed_name(json[i - 1]) 163 | else 164 | name = key 165 | prev_name = json.keys[i - 1] 166 | add_valid_language_key(keys_in_language_json, key, file) 167 | end 168 | if i > 0 && prev_name > name 169 | STDERR.puts 'Sorting error in ' + file 170 | STDERR.puts 'Keys must be in alphanumeric order. ' + \ 171 | prev_name + ' needs to come after ' + name 172 | exit ExitCodes::UNSORTED 173 | end 174 | end 175 | validate_site_translation(is_sites_json, keys_in_language_json, file) 176 | rescue JSON::ParserError => error 177 | STDERR.puts 'JSON parsing error encountered!' 178 | STDERR.puts error.backtrace.join("\n") 179 | exit ExitCodes::PARSE_FAILED 180 | end 181 | end 182 | 183 | exit ExitCodes::SUCCESS 184 | -------------------------------------------------------------------------------- /_includes/body.html: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 |
19 |
20 |

{{ site.data.trans[page.lang].noresults }} {{ site.data.trans[page.lang].noresultshelp }}.

21 | 22 | {% assign sites = site.data.sites | sort_natural: 'name' %} 23 | {% for entry in sites %} 24 |
25 | {% capture lang_url %}url_{{ page.short }}{% endcapture %} 26 | 27 | {{ entry.name }} 28 | 29 | 30 |

31 | {% if entry.difficulty == 'easy' %} 32 | {{ site.data.trans[page.lang].difficulty_easy }} 33 | {% elsif entry.difficulty == 'medium' %} 34 | {{ site.data.trans[page.lang].difficulty_medium }} 35 | {% elsif entry.difficulty == 'hard' %} 36 | {{ site.data.trans[page.lang].difficulty_hard }} 37 | {% elsif entry.difficulty == 'limited' %} 38 | {{ site.data.trans[page.lang].difficulty_limited }} 39 | {% elsif entry.difficulty == 'impossible' %} 40 | {{ site.data.trans[page.lang].difficulty_impossible }} 41 | {% endif %} 42 |

43 | 44 | {% capture lang_notes %}notes_{{ page.lang }}{% endcapture %} 45 | {% if entry.notes or entry[lang_notes] %} 46 |
47 | {% if entry[lang_notes] %} 48 | {{ entry[lang_notes] | markdownify }} 49 | {% else %} 50 | {{ entry.notes | markdownify }} 51 | {% endif %} 52 | {% if entry.email %} 53 |
{{ site.data.trans[page.lang].sendmail }} » 54 | {% endif %} 55 |
56 | 57 | {{ site.data.trans[page.lang].showinfo }} 58 | {{ site.data.trans[page.lang].hideinfo }} 59 | 60 | {% else %} 61 |

{{ site.data.trans[page.lang].noinfo }}

62 | {% endif %} 63 |
64 | {% endfor %} 65 |
66 |
67 | 68 | 69 |
70 |
71 |
72 |

{{ site.data.trans[page.lang].whatisthis }}

73 |

{{ site.data.trans[page.lang].whatisthis1|safe }} {{ site.data.trans[page.lang].whatisthis2|safe }} {{ site.data.trans[page.lang].whatisthis3|safe }}

74 |

{{ site.data.trans[page.lang].whatisthis4|safe }} {{ site.data.trans[page.lang].pullrequest|safe }}.

75 |
76 |
77 |

{{ site.data.trans[page.lang].guide }}

78 |

{{ site.data.trans[page.lang].guideexplanations }}

79 |
    80 |
  • {{ site.data.trans[page.lang].difficulty_easy|safe }} - {{ site.data.trans[page.lang].guideeasy|safe }}
  • 81 |
  • {{ site.data.trans[page.lang].difficulty_medium|safe }} - {{ site.data.trans[page.lang].guidemedium|safe }}
  • 82 |
  • {{ site.data.trans[page.lang].difficulty_hard|safe }} - {{ site.data.trans[page.lang].guidehard|safe }}
  • 83 |
  • {{ site.data.trans[page.lang].difficulty_limited|safe }} - {{ site.data.trans[page.lang].guidelimited|safe }}
  • 84 |
  • {{ site.data.trans[page.lang].difficulty_impossible|safe }} - {{ site.data.trans[page.lang].guideimpossible|safe }}
  • 85 |
86 |
87 |
88 |
89 | 90 | 111 | 112 | 113 | 129 | 130 | 131 | 141 | 142 | 143 | 153 | 154 | 155 | 166 | -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | *, 2 | *:before, 3 | *:after { 4 | -webkit-box-sizing: border-box; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | } 8 | 9 | /* For RTL languages, English parts need to be LTR */ 10 | .ltr{ 11 | direction: ltr; 12 | } 13 | 14 | body { 15 | background-color: #D4D8DC; 16 | font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; 17 | margin: 0; 18 | padding: 0; 19 | } 20 | 21 | nav { 22 | background-color: #3399FF; 23 | color: black; 24 | direction: ltr; 25 | font-weight: normal; 26 | margin: 0 auto; 27 | opacity: 0.9; 28 | padding: 15px 0; 29 | position: fixed; 30 | text-align: center; 31 | top: 0; 32 | width: 100%; 33 | z-index: 1; 34 | } 35 | 36 | .language-switch { 37 | background-position: left center; 38 | background-repeat: no-repeat; 39 | cursor: pointer; 40 | padding: 8px 10px 8px 29px; 41 | } 42 | 43 | .dropdown .cs-CZ a, .cs-CZ a { background-image: url(../icons/flags/cs-CZ16.png); } 44 | .dropdown .en-GB a, .en-GB a { background-image: url(../icons/flags/en-GB16.png); } 45 | .dropdown .es-ES a, .es-ES a { background-image: url(../icons/flags/es-ES16.png); } 46 | .dropdown .pt-BR a, .pt-BR a { background-image: url(../icons/flags/pt-BR16.png); } 47 | .dropdown .tr-TR a, .tr-TR a { background-image: url(../icons/flags/tr-TR16.png); } 48 | .dropdown .de-DE a, .de-DE a { background-image: url(../icons/flags/de-DE16.png); } 49 | .dropdown .fr-FR a, .fr-FR a { background-image: url(../icons/flags/fr-FR16.png); } 50 | .dropdown .ca-ES a, .ca-ES a { background-image: url(../icons/flags/ca-ES16.png); } 51 | .dropdown .nl-NL a, .nl-NL a { background-image: url(../icons/flags/nl-NL16.png); } 52 | .dropdown .it-IT a, .it-IT a { background-image: url(../icons/flags/it-IT16.png); } 53 | .dropdown .pl-PL a, .pl-PL a { background-image: url(../icons/flags/pl-PL16.png); } 54 | 55 | #cs-CZ { background-image: url(../icons/flags/cs-CZ24.png); } 56 | #en-GB { background-image: url(../icons/flags/en-GB24.png); } 57 | #es-ES { background-image: url(../icons/flags/es-ES24.png); } 58 | #pt-BR { background-image: url(../icons/flags/pt-BR24.png); } 59 | #tr-TR { background-image: url(../icons/flags/tr-TR24.png); } 60 | #de-DE { background-image: url(../icons/flags/de-DE24.png); } 61 | #fr-FR { background-image: url(../icons/flags/fr-FR24.png); } 62 | #ca-ES { background-image: url(../icons/flags/ca-ES24.png); } 63 | #nl-NL { background-image: url(../icons/flags/nl-NL24.png); } 64 | #it-IT { background-image: url(../icons/flags/it-IT24.png); } 65 | #pl-PL { background-image: url(../icons/flags/pl-PL24.png); } 66 | 67 | nav a { 68 | color: black; 69 | font-weight: normal; 70 | padding: 8px 10px; 71 | text-decoration: none; 72 | } 73 | 74 | nav a:hover, .language-switch:hover, .current { 75 | border-bottom: 1px solid black; 76 | } 77 | 78 | header { 79 | background-color: #293840; 80 | border-bottom: 5px solid #3399FF; 81 | color: #E8E8E8; 82 | margin-top: 47px; 83 | padding: 40px 0; 84 | position: relative; 85 | text-align: center; 86 | } 87 | 88 | .js-on header { 89 | border: none; 90 | } 91 | 92 | header h1 { 93 | font-size: 300%; 94 | font-weight: lighter; 95 | margin: 0; 96 | padding-bottom: 10px; 97 | } 98 | 99 | header h1 span { 100 | color: #3399FF; 101 | } 102 | 103 | .tagline { 104 | color: #9FB3BE; 105 | font-size: 16px; 106 | margin: 0; 107 | } 108 | 109 | .button { 110 | background: #3399FF; 111 | border-radius: 5px; 112 | color: white; 113 | display: inline-block; 114 | font-weight: lighter; 115 | letter-spacing: 1px; 116 | margin-top: 10px; 117 | padding: 10px 20px; 118 | text-decoration: none; 119 | transition: all 0.3s ease 0s; 120 | } 121 | 122 | .button:hover { 123 | background: #004c99; 124 | cursor: pointer; 125 | } 126 | 127 | .jdm.button:hover { 128 | background: #AC4949; 129 | } 130 | 131 | .jwtd.button:hover { 132 | background: #8a0963; 133 | } 134 | 135 | .search { 136 | background-color: #3399FF; 137 | display: none; 138 | padding: 10px 0; 139 | } 140 | 141 | .js-on .search { 142 | display: block; 143 | } 144 | 145 | .search .search-container { 146 | margin: 0 auto; 147 | max-width: 500px; 148 | padding: 0 30px 0 0; 149 | position: relative; 150 | } 151 | 152 | .search .search-container input { 153 | background-color: transparent; 154 | border: 0 none; 155 | border-bottom: 1px solid white; 156 | color: white; 157 | display: block; 158 | font-size: 16px; 159 | padding: 10px; 160 | width: 100%; 161 | } 162 | 163 | .search .search-container input:focus { 164 | outline: none; 165 | } 166 | 167 | #search{ 168 | direction: ltr; 169 | } 170 | 171 | .search .search-container label { 172 | background: url('../img/spyglass.png'); 173 | background-size: 20px 20px; 174 | cursor: pointer; 175 | height: 20px; 176 | position: absolute; 177 | right: 0; 178 | text-indent: -9999px; 179 | top: 11px; 180 | width: 20px; 181 | } 182 | 183 | .sort-container { 184 | margin: 0 auto; 185 | max-width: 500px; 186 | padding: 10px 0; 187 | position: relative; 188 | text-align: center; 189 | } 190 | 191 | .sort-container a { 192 | text-decoration: none; 193 | } 194 | 195 | button { 196 | background-color: white; 197 | border: none; 198 | border-radius: 5px; 199 | cursor: pointer; 200 | font-size: 70%; 201 | font-weight: lighter; 202 | padding: 10px 15px; 203 | text-transform: uppercase; 204 | transition: all 0.3s ease 0s; 205 | } 206 | 207 | button:hover { 208 | background-color: #cce5fe; 209 | } 210 | 211 | .reset { 212 | color: #3399FF; 213 | } 214 | 215 | main { 216 | border-bottom: 4px solid #3399FF; 217 | } 218 | 219 | .sites { 220 | display: grid; 221 | grid-gap: 20px 14px; 222 | grid-template-columns: repeat(4, 1fr); 223 | margin: 0 auto; 224 | max-width: 1000px; 225 | min-height: 143px; 226 | padding: 30px 0; 227 | } 228 | 229 | .sites a { 230 | color: #3399FF; 231 | text-decoration: none; 232 | } 233 | 234 | .sites a:hover { 235 | color: #283840; 236 | text-decoration: underline; 237 | } 238 | 239 | .no-results { 240 | display: none; 241 | font-weight: bold; 242 | grid-column: span 4; 243 | text-align: center; 244 | } 245 | 246 | .site-block .site-header { 247 | color: white; 248 | direction: ltr; 249 | display: block; 250 | font-size: 16px; 251 | font-weight: bold; 252 | line-height: 1; 253 | padding: 10px; 254 | } 255 | 256 | .site-block .site-header:hover { 257 | color: white; 258 | text-decoration: none; 259 | } 260 | 261 | .site-block.easy .site-header { 262 | background-color: #7BAC7B; 263 | border: 1px solid #5D895D; 264 | } 265 | .site-block.easy .site-header:hover { 266 | background-color: #5D895D; 267 | } 268 | 269 | .site-block.medium .site-header { 270 | background-color: #E8C674; 271 | border: 1px solid #C5A65C; 272 | } 273 | .site-block.medium .site-header:hover { 274 | background-color: #C5A65C; 275 | } 276 | 277 | .site-block.hard .site-header { 278 | background-color: #D04343; 279 | border: 1px solid #AC4949; 280 | } 281 | .site-block.hard .site-header:hover { 282 | background-color: #AC4949; 283 | } 284 | 285 | .site-block.limited .site-header { 286 | background-color: #B521CC; 287 | border: 1px solid #9923AC; 288 | } 289 | .site-block.limited .site-header:hover { 290 | background-color: #9923AC; 291 | } 292 | 293 | .site-block.impossible .site-header { 294 | background-color: #2B2B2B; 295 | border: 1px solid black; 296 | } 297 | .site-block.impossible .site-header:hover { 298 | background-color: black; 299 | } 300 | 301 | .site-block .site-difficulty { 302 | background-color: #EAEBED; 303 | border: 1px solid #BFC6CC; 304 | border-top: 0; 305 | color: #293840; 306 | font-size: 12px; 307 | font-weight: bold; 308 | line-height: 0; 309 | margin: 0; 310 | padding: 15px 10px; 311 | text-transform: uppercase; 312 | } 313 | 314 | .site-block .tooltip-content { 315 | background-color: #EAEBED; 316 | border: 1px solid #BFC6CC; 317 | border-top: 0; 318 | color: #293840; 319 | display: none; 320 | font-size: 12px; 321 | line-height: 1.5; 322 | margin: 0; 323 | padding: 10px; 324 | } 325 | 326 | .site-block .tooltip-toggle { 327 | background-color: #EAEBED; 328 | border: 1px solid #BFC6CC; 329 | border-top: 0; 330 | color: #878787; 331 | display: block; 332 | font-size: 10px; 333 | font-weight: bold; 334 | line-height: 0; 335 | margin: 0; 336 | padding: 15px 10px; 337 | text-transform: uppercase; 338 | } 339 | 340 | .site-block .tooltip-toggle.contains-info { 341 | color: #293840; 342 | } 343 | 344 | .site-block.easy .tooltip-toggle.contains-info:hover { color: #7BAC7B; } 345 | .site-block.medium .tooltip-toggle.contains-info:hover { color: #E8C674; } 346 | .site-block.hard .tooltip-toggle.contains-info:hover { color: #D04343; } 347 | .site-block.limited .tooltip-toggle.contains-info:hover { color: #B521CC; } 348 | .site-block.impossible .tooltip-toggle.contains-info:hover { color: #2B2B2B; } 349 | 350 | .hide-info { 351 | display: none; 352 | } 353 | 354 | .toggled + .tooltip-toggle > .show-info { 355 | display: none; 356 | } 357 | .toggled + .tooltip-toggle > .hide-info { 358 | display: inline; 359 | } 360 | 361 | .info-container, 362 | .banner-content { 363 | margin: 0 auto; 364 | max-width: 1000px; 365 | padding: 20px 0; 366 | } 367 | 368 | .info-container::after, 369 | .banner-content::after { 370 | clear: both; 371 | content: ''; 372 | display: block; 373 | } 374 | 375 | .info-block-half, 376 | .banner-block .banner-block-half { 377 | float: left; 378 | padding: 0 20px; 379 | width: 50%; 380 | } 381 | 382 | .info-block { 383 | background-color: #293840; 384 | color: #9FB3BE; 385 | } 386 | 387 | .info-container a { 388 | color: white; 389 | text-decoration: none; 390 | } 391 | 392 | .info-container a:hover { 393 | color: #3399FF; 394 | } 395 | 396 | .info-container h2 { 397 | color: white; 398 | font-weight: 200; 399 | margin: 0; 400 | padding-bottom: 10px; 401 | } 402 | 403 | .info-container p { 404 | font-size: 14px; 405 | line-height: 1.5; 406 | margin: 0 0 10px; 407 | } 408 | 409 | .info-container ul { 410 | padding: 0; 411 | } 412 | 413 | .info-container li { 414 | font-size: 14px; 415 | margin: 5px 0; 416 | } 417 | 418 | .info-container .difficulty { 419 | color: white; 420 | display: inline-block; 421 | font-weight: bold; 422 | line-height: 1; 423 | padding: 6px 12px; 424 | } 425 | 426 | .info-container .easy .difficulty { 427 | background-color: #7BAC7B; 428 | border: 1px solid #5D895D; 429 | } 430 | .info-container .medium .difficulty { 431 | background-color: #E8C674; 432 | border: 1px solid #C5A65C; 433 | } 434 | .info-container .hard .difficulty { 435 | background-color: #D04343; 436 | border: 1px solid #AC4949; 437 | } 438 | .info-container .limited .difficulty { 439 | background-color: #B521CC; 440 | border: 1px solid #9923AC; 441 | } 442 | .info-container .impossible .difficulty { 443 | background-color: #2B2B2B; 444 | border: 1px solid black; 445 | } 446 | 447 | .banner-block { 448 | background-color: #7BAC7B; 449 | color: white; 450 | } 451 | 452 | .banner-block h2 { 453 | font-weight: 200; 454 | } 455 | 456 | .banner-block p { 457 | font-size: 14px; 458 | line-height: 1.5; 459 | margin: 0; 460 | margin-bottom: 10px; 461 | } 462 | 463 | .banner-block a { 464 | color: #2B2B2B; 465 | font-weight: bold; 466 | text-decoration: none; 467 | } 468 | 469 | .banner-block a:hover { 470 | color: #3399FF; 471 | } 472 | 473 | .banner-block ul { 474 | padding: 0; 475 | } 476 | 477 | .banner-block li { 478 | font-size: 14px; 479 | list-style: none; 480 | padding: 5px; 481 | } 482 | 483 | .banner-block li .dot-wrapper { 484 | background-color: #EAEBED; 485 | border: 1px solid #BFC6CC; 486 | border-radius: 3px; 487 | display: inline-block; 488 | height: 20px; 489 | padding: 4px 4px; 490 | vertical-align: middle; 491 | width: 20px; 492 | } 493 | .banner-block li .dot { 494 | border-radius: 5px; 495 | display: block; 496 | height: 10px; 497 | width: 10px; 498 | } 499 | .banner-block li .dot.easy { 500 | background-color: #7BAC7B; 501 | border: 1px solid #5D895D; 502 | } 503 | .banner-block li .dot.medium { 504 | background-color: #E8C674; 505 | border: 1px solid #C5A65C; 506 | } 507 | .banner-block li .dot.hard { 508 | background-color: #D04343; 509 | border: 1px solid #AC4949; 510 | } 511 | .banner-block li .dot.limited { 512 | background-color: #B521CC; 513 | border: 1px solid #9923AC; 514 | } 515 | .banner-block li .dot.impossible { 516 | background-color: #2B2B2B; 517 | border: 1px solid black; 518 | } 519 | 520 | .banner-block .banner-block-extension { 521 | background-image: url('../img/block.png'); 522 | background-position: center bottom; 523 | background-repeat: no-repeat; 524 | background-size: 100%; 525 | height: 100px; 526 | margin: 0 auto; 527 | max-width: 540px; 528 | } 529 | 530 | footer { 531 | border-top: 1px solid #9FB3BE; 532 | color: #9FB3BE; 533 | font-size: 12px; 534 | margin-top: 30px; 535 | padding: 10px 0 20px 0; 536 | text-align: center; 537 | } 538 | 539 | .share-buttons { 540 | float: right; 541 | } 542 | 543 | [dir="rtl"] .share-buttons { 544 | float: left; 545 | } 546 | 547 | /* Media queries */ 548 | @media only screen and (max-width: 1000px) { 549 | .sites { 550 | grid-template-columns: repeat(3, 1fr); 551 | } 552 | .no-results { 553 | grid-column: span 3; 554 | } 555 | } 556 | 557 | @media only screen and (max-width: 560px) { 558 | header { 559 | padding: 40px 20px; 560 | } 561 | .search { 562 | padding: 10px 20px; 563 | } 564 | .sites { 565 | grid-template-columns: repeat(2, 1fr); 566 | } 567 | .no-results { 568 | grid-column: span 2; 569 | } 570 | .info-block-half, 571 | .banner-block-half { 572 | width: 100%; 573 | } 574 | .share-buttons { 575 | float: none; 576 | margin-top: 10px; 577 | } 578 | } 579 | 580 | @media only screen and (max-width: 480px) { 581 | .sites { 582 | grid-template-columns: repeat(1, 1fr); 583 | } 584 | .no-results { 585 | grid-column: auto; 586 | } 587 | } 588 | -------------------------------------------------------------------------------- /_data/sites.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "1688", 4 | "url": "https://1688.com", 5 | "difficulty": "hard", 6 | "notes": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'", 7 | "notes_es-ES": "Dependiendo de donde vivas tendrás que seguir unas instrucciones u otras de https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm", 8 | "notes_cs-CZ": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'" 9 | }, 10 | 11 | { 12 | "name": "2K Games", 13 | "url": "https://support.2k.com/hc/en-us/articles/360022982514", 14 | "difficulty": "hard", 15 | "notes": "Go to the linked website and submit a request to download your account data." 16 | }, 17 | 18 | { 19 | "name": "Adobe", 20 | "url": "https://www.adobe.com/privacy/privacy-contact.html#form", 21 | "difficulty": "hard", 22 | "notes": "Go to the URL provided above and submit a request.", 23 | "notes_es-ES": "Entra en la dirección indicada arriba y rellena el formulario." 24 | }, 25 | 26 | { 27 | "name": "Akinator", 28 | "url": "https://en.akinator.com/content/13/privacy-policy", 29 | "difficulty": "hard", 30 | "email": "privacypolicy@elokence.com", 31 | "notes": "According to privacy policy (item 8), you have to send an e-mail to them requesting the data.", 32 | "notes_pt-BR": "De acordo com a política de privacidade (item 8), você tem de enviar um e-mail para eles, solicitando os dados.", 33 | "notes_pt-PT": "De acordo com a política de privacidade (item 8), você tem de enviar um e-mail para eles, solicitando os dados." 34 | }, 35 | 36 | { 37 | "name": "Algor Education", 38 | "url": "https://en.algoreducation.com/contact-us", 39 | "url_es-ES": "https://es.algoreducation.com/contact-us", 40 | "url_de-DE": "https://de.algoreducation.com/contact-us", 41 | "url_fr-FR": "https://fr.algoreducation.com/contact-us", 42 | "url_it-IT": "https://www.algoreducation.com/contattaci", 43 | "difficulty": "hard", 44 | "email": "support@algoreducation.com", 45 | "notes": "Contact the customer support and request your data.", 46 | "notes_it-IT": "Contatta l'assistenza clienti e richiedi i tuoi dati." 47 | }, 48 | 49 | { 50 | "name": "Alibaba", 51 | "url": "https://alibaba.com", 52 | "difficulty": "hard", 53 | "notes": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'", 54 | "notes_es-ES": "Dependiendo de donde vivas tendrás que seguir unas instrucciones u otras de https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm", 55 | "notes_cs-CZ": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'" 56 | }, 57 | 58 | { 59 | "name": "Aliexpress", 60 | "url": "https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm", 61 | "difficulty": "hard", 62 | "notes": "Depending on you area you must follow the instructions shown in 'https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'", 63 | "notes_es-ES": "Dependiendo de donde vivas tendrás que seguir unas instrucciones u otras de https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm", 64 | "notes_cs-CZ": "Depending on you area you must follow the instructions shown in 'https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'" 65 | }, 66 | 67 | { 68 | "name": "Amazon", 69 | "meta": "popular", 70 | "url": "https://www.amazon.com/hz/privacy-central/data-requests/preview.html", 71 | "difficulty": "easy", 72 | "notes": "Visit the linked page. After signing in, select \"Request All Your Data\" and click \"Submit Request.\" You'll receive a confirmation email that must be clicked within 5 days. Once verified, Amazon will compile and send a downloadable ZIP file containing your account data." 73 | }, 74 | 75 | { 76 | "name": "Anthropic", 77 | "url": "https://claude.ai/settings/data-privacy-controls", 78 | "difficulty": "easy", 79 | "notes": " Go to Settings → Privacy → \"Export data.\" Your account data will be compiled and made available for download with a single click." 80 | }, 81 | 82 | { 83 | "name": "Apple", 84 | "meta": "popular", 85 | "url": "https://privacy.apple.com", 86 | "difficulty": "easy", 87 | "notes": "Go to the url provided above and login with your Apple ID. Click on 'Get a copy of my data' and categories will be displayed to select the type of data to download. After selecting, information will be asked to confirm that you are the account's owner. You will recibe a notification when the data its available for download and you will have 2 weeks to do it.", 88 | "notes_es-ES": "Entra en la dirección indicada arriba e inicia sesión con tu Apple ID. Haz click en 'Obtener una copia de mis datos' y se mostrarán categorías para seleccionar el tipo de datos a descargar. Trás seleccionar, se preguntará información para confirmar que eres el propietario de la cuenta. Se te notificará cuando los datos estén disponibles para descargar y tendrás 2 semanas para hacerlo.", 89 | "notes_cs-CZ": "Go to the url provided above and login with your Apple ID. Click on 'Get a copy of my data' and categories will be displayed to select the type of data to download. After selecting, information will be asked to confirm that you are the account's owner. You will recibe a notification when the data its available for download and you will have 2 weeks to do it." 90 | }, 91 | 92 | { 93 | "name": "The Atlantic", 94 | "url": "https://support.theatlantic.com/hc/requests/new", 95 | "difficulty": "limited", 96 | "notes": "Depending on where you live, you either have to select \"Submit a CPRA or VCDPA Data request\" or \"Submit an EEA Data Request\"." 97 | }, 98 | 99 | { 100 | "name": "Badlion", 101 | "url": "https://www.badlion.net/settings?lang=en", 102 | "url_de-DE": "https://www.badlion.net/settings?lang=de", 103 | "difficulty": "easy", 104 | "notes": "Go to the url provided above and submit a data request at the bottom of the page", 105 | "notes_de-DE": "Gehe zu zur oben angegebenen URL und sende unten auf der Seite eine Datenanforderung" 106 | }, 107 | 108 | { 109 | "name": "Badoo", 110 | "url": "https://badoo.com/feedback", 111 | "difficulty": "hard", 112 | "notes": "Go to the url provided above and submit a request, picking 'General question' as subject, or send an email to [DPOcorp.badoo.com](mailto:DPO@corp.badoo.com).", 113 | "notes_es-ES": "Entra en la dirección indicada arriba y envía una solicitud, selecionando como asunto 'Pregunta general', o envía un email a [DPOcorp.badoo.com](mailto:DPO@corp.badoo.com).", 114 | "notes_pl-PL": "Wejdź na powyższy adres i wyślij zapytanie, wybierając jako temat 'Zapytanie ogólne', lub wyślij e-mail na adres [DPOcorp.badoo.com](mailto:DPO@corp.badoo.com)." 115 | }, 116 | 117 | { 118 | "name": "Battle.net / Blizzard", 119 | "url": "https://www.battle.net/support/help/product/services/1327", 120 | "difficulty": "medium", 121 | "notes": "Select the information you want to download. You will need to enter an email verification code and a 2FA code if enabled." 122 | }, 123 | 124 | { 125 | "name": "BBVA", 126 | "url": "https://web.bbva.es/index.html?v=12.3.22#areapersonal/menu/privacidadydatos", 127 | "difficulty": "easy", 128 | "notes": "On 'My profile' section, click on 'Security and privacy'. Go to 'Privacy and Data', click on 'Get Portability' and wait until it's done.", 129 | "notes_es-ES": "On 'My profile' section, click on 'Security and privacy'. Go to 'Privacy and Data', click on 'Get Portability' and wait until it's done.", 130 | "notes_cs-CZ": "On 'My profile' section, click on 'Security and privacy'. Go to 'Privacy and Data', click on 'Get Portability' and wait until it's done." 131 | }, 132 | 133 | { 134 | "name": "Best Buy", 135 | "url": "https://www.bestbuy.com/sentry/confirm/residency?context=ca&type=access", 136 | "difficulty": "hard", 137 | "notes": "Make sure not to skip signin to make the process faster." 138 | }, 139 | 140 | { 141 | "name": "Betnacional", 142 | "url": "https://assets.bet6.com.br/sistemans/skins/betnacional/doc/5eef829d8f.pdf", 143 | "difficulty": "hard", 144 | "notes": "According to privacy policy (item 8), you have to send an e-mail to them requesting the data.", 145 | "notes_pt-BR": "De acordo com a política de privacidade (item 8), você tem de enviar um e-mail para eles, solicitando os dados.", 146 | "notes_pt-PT": "De acordo com a política de privacidade (item 8), você tem de enviar um e-mail para eles, solicitando os dados.", 147 | "email":"contato@betnacional.com" 148 | }, 149 | 150 | { 151 | "name": "Board Game Geek", 152 | "url": "https://boardgamegeek.com/privacy#toc33", 153 | "difficulty": "hard", 154 | "notes": "You have to contact with service support", 155 | "notes_es-ES": "Debes contactar con servicio al cliente", 156 | "notes_cs-CZ": "You have to contact with service support" 157 | }, 158 | 159 | { 160 | "name": "Booking", 161 | "url": "https://www.booking.com/content/dsar.en-gb.html", 162 | "difficulty": "medium", 163 | "notes": "Go to the form provided in the url above and fill it selecting the option 'Right of access to personal data'.", 164 | "notes_es-ES": "Ve al formulario indicado en la dirección superior y rellénalo seleccionando la opción 'Right of access to personal data'.", 165 | "notes_cs-CZ": "Go to the form provided in the url above and fill it selecting the option 'Right of access to personal data'." 166 | }, 167 | 168 | { 169 | "name": "Burger King", 170 | "url": "https://privacyportal-eu-cdn.onetrust.com/dsarwebform/7ae425dd-1c76-46b0-a1b4-2422a364fae3/draft/1d4481aa-204a-4cb5-a40a-82e4369d16b2.html", 171 | "difficulty": "medium", 172 | "notes": "U.S. and Canada residents can fill out the linked web form or email [privacy@rbi.com](mailto:privacy@rbi.com)" 173 | }, 174 | 175 | { 176 | "name": "Chick-fil-A", 177 | "url": "https://privacyportal.onetrust.com/webform/63dc78c7-5612-4181-beae-47dead0569ee/01252c81-82df-4db5-9cb8-bf23a62a9a55", 178 | "difficulty": "medium", 179 | "notes": "In the mobile app, go to Account > Communications & privacy > Privacy Rights and fill out the provided [privacy web form](https://privacyportal.onetrust.com/webform/63dc78c7-5612-4181-beae-47dead0569ee/01252c81-82df-4db5-9cb8-bf23a62a9a55). U.S. residents can also send an email to [privacy@chick-fil-a.com](mailto:privacy@chick-fil-a.com) or call 1-866-232-2040; Canadian residents must email [privacy.canada@chick-fil-a.com](mailto:privacy.canada@chick-fil-a.com)." 180 | }, 181 | 182 | { 183 | "name": "Cloudflare", 184 | "url": "https://www.cloudflare.com/privacypolicy/", 185 | "difficulty": "hard", 186 | "notes": "Cloudflare only accepts access requests via email.", 187 | "email": "SAR@cloudflare.com" 188 | }, 189 | 190 | { 191 | "name": "Coinbase", 192 | "url": "https://help.coinbase.com/en/pro/privacy-and-security/data-privacy/gdpr-how-to-access-information.html", 193 | "difficulty": "easy", 194 | "notes": "You can log into your Coinbase account and request your data in the Privacy section. You have a full guide in the url above.", 195 | "notes_es-ES": "Entrando en tu cuenta de Coinbase puedes solicitar tus datos en la sección Privacidad. Tienes una guía completa en la url superior.", 196 | "notes_cs-CZ": "You can log into your Coinbase account and request your data in the Privacy section. You have a full guide in the url above." 197 | }, 198 | 199 | { 200 | "name": "Craigslist", 201 | "url": "https://www.craigslist.org/about/privacy.policy", 202 | "difficulty": "hard", 203 | "notes": "Send an email requesting a copy of your data to [privacy@craigslist.org](mailto:privacy@craigslist.org).", 204 | "notes_es-ES": "Envía un email pidiendo una copia de tus datos a [privacy@craigslist.org](mailto:privacy@craigslist.org).", 205 | "notes_pl-PL": "Wyślij wiadomość e-mail z prośbą o przesłanie kopii swoich danych na adres [privacy@craigslist.org](mailto:privacy@craigslist.org)." 206 | }, 207 | 208 | { 209 | "name": "DeviantArt", 210 | "url": "https://www.deviantart.com/settings/gdpr/", 211 | "difficulty": "impossible", 212 | "notes": "The GDPR link is not shown publicly - you must know the URL directly. The data provided is very limited (no private messages, no comments on arts, only basic account information like username, email, and IP addresses). Account deactivation available at https://www.deviantart.com/settings/deactivation but no account deletion option found." 213 | }, 214 | 215 | { 216 | "name": "Discord", 217 | "url": "https://discord.com", 218 | "difficulty": "easy", 219 | "notes": "You have to log into your Discord account, go to 'Settings > Privacy and security' and click on 'Request all my data'.", 220 | "notes_es-ES": "Tienes que iniciar sesión en tu cuenta de Discord, ir a 'Ajustes > Privacidad y seguridad' y hacer click en 'Solicitar todos mis datos'.", 221 | "notes_cs-CZ": "You have to log into your Discord account, go to 'Settings > Privacy and security' and click on 'Request all my data'." 222 | }, 223 | 224 | { 225 | "name": "Duolingo", 226 | "url": "https://drive-thru.duolingo.com", 227 | "difficulty": "medium", 228 | "notes": "Must log in to Duolingo before accessing this site (will not redirect)." 229 | }, 230 | 231 | { 232 | "name": "eBay", 233 | "url": "https://www.sarweb.ebay.com/sar", 234 | "difficulty": "easy", 235 | "notes": "Go to your account settings, then click on \"Request your eBay data\", follow the simple steps and in 7 days you should receive your data back", 236 | "notes_es-ES": "Ve a la configuración de la cuenta, y haz click en \"Solicita tus datos de eBay\", sigue los pasos y en 7 días recibirás todos tus datos por correo electrónico", 237 | "notes_cs-CZ": "Go to your account settings, then click on \"Request your eBay data\", follow the simple steps and in 7 days you should receive your data back" 238 | }, 239 | 240 | { 241 | "name": "Edizioni Simone", 242 | "url": "https://edizioni.simone.it/informativa-sulla-privacy", 243 | "difficulty": "hard", 244 | "email": "privacy@simone.it", 245 | "notes": "Contact the customer support via email and request a copy of your data.", 246 | "notes_it-IT": "Contatta l'assistenza clienti via email e richiedi una copia dei tuoi dati." 247 | }, 248 | 249 | { 250 | "name": "Electroneum", 251 | "url": "https://support.electroneum.com/hc/en-gb/requests/new", 252 | "difficulty": "hard", 253 | "email": "support@electroneum.com", 254 | "notes": "Contact the customer support using the form or via email and request your data.", 255 | "notes_it-IT": "Contatta l'assistenza clienti tramite il form o via email e richiedi i tuoi dati." 256 | }, 257 | 258 | { 259 | "name": "Electronic Arts", 260 | "url": "https://myaccount.ea.com/cp-ui/downloaddata/index", 261 | "difficulty": "easy", 262 | "notes": "Go to your account settings, click on 'Your EA data', then hit the request button, and you should be able to download your data in a couple of hours" 263 | }, 264 | 265 | { 266 | "name": "Engadget", 267 | "url": "https://engadget.mydashboard.oath.com/#section-manage", 268 | "difficulty": "medium", 269 | "notes": "Scroll down to the bottom of page, and you should see an option to donwload your data. From there, you can select what types of data you want to download, and then request to download your data. It can take up to 30 days for Engadget to prepare your data. You can download in your account data in your account settings." 270 | }, 271 | 272 | { 273 | "name": "Epic Games", 274 | "url": "https://www.epicgames.com/account/personal", 275 | "difficulty": "easy", 276 | "notes": "Go to your account settings, then click on 'Download Account Information' button to receive your data" 277 | }, 278 | 279 | { 280 | "name": "Facebook", 281 | "meta": "popular", 282 | "url": "https://accountscenter.facebook.com/info_and_permissions", 283 | "difficulty": "easy", 284 | "notes": "Go to the profile icon, click \"Settings & privacy\", then \"Settings\", and click \"See more in Accounts Center\". You can access a summary of your data or download a copy. The data are categorized by type to help the search. You can download it in JSON or HTML formats.", 285 | "notes_it-IT": "Vai sull'icona del profilo, clicca su \"Impostazioni e privacy\", quindi su \"Impostazioni\" e clicca su \"Vedi altro nel Centro gestione account\". Puoi accedere a un riepilogo dei tuoi dati o scaricarne una copia. I dati sono categorizzati per tipo per facilitare la ricerca. Puoi scaricarli in formato JSON o HTML." 286 | }, 287 | 288 | { 289 | "name": "Fandom", 290 | "url": "https://community.fandom.com/wiki/Special:DownloadYourData", 291 | "difficulty": "easy" 292 | }, 293 | 294 | { 295 | "name": "FedEx", 296 | "url": "https://privacyportal.onetrust.com/webform/8a471a7b-6a52-49d0-bcb0-fa8bdb61598f/c121cce6-6cfb-4c3d-9b61-334f56a01b5f", 297 | "difficulty": "hard", 298 | "notes": "You will be asked to upload photo id after the initial form submission." 299 | }, 300 | 301 | { 302 | "name": "Fitbit", 303 | "url": "https://www.fitbit.com/settings/data/export", 304 | "difficulty": "medium", 305 | "notes": "Click the link sent to your email if you requested a full archive." 306 | }, 307 | 308 | { 309 | "name": "Freelancer", 310 | "url": "https://www.freelancer.com/about/privacy?w=f&ngsw-bypass=", 311 | "difficulty": "hard", 312 | "notes": "Send an email requesting a copy of your data to privacy-officer@freelancer.com.", 313 | "email": "privacy-officer@freelancer.com" 314 | }, 315 | 316 | { 317 | "name": "GearBest", 318 | "url": "https://www.gearbest.com/", 319 | "difficulty": "hard", 320 | "notes": "You may send us an e-mail to support@gearbest.com to exercise your rights. We will respond to your request in a reasonable timeframe. We will take all reasonable steps to ensure that your personal data is correct and up to date." 321 | }, 322 | 323 | { 324 | "name": "Gettr", 325 | "url": "https://gettr.com/privacy", 326 | "difficulty": "hard", 327 | "notes": "According with item 11.IV, you have to send an e-mail to [privacyrights@gettr.com](mailto:privacyrights@gettr.com). And even sending the e-mail, they may refuse the request and not send the data.", 328 | "notes_pt-BR": "De acordo com o item 11.IV, você tem de enviar um e-mail para mailto:privacyrights@gettr.com, solicitando os dados. E mesmo enviando o e-mail, ele podem recusar o pedido e não te enviar os dados.", 329 | "notes_pt-PT": "De acordo com o item 11.IV, você tem de enviar um e-mail para mailto:privacyrights@gettr.com, solicitando os dados. E mesmo enviando o e-mail, ele podem recusar o pedido e não te enviar os dados." 330 | }, 331 | 332 | { 333 | "name": "GitHub", 334 | "meta": "popular", 335 | "url": "https://github.com/settings/admin", 336 | "difficulty": "medium", 337 | "notes": "In the section \"Export account data\" select \"Start report\". Once done, wait for an email to arrive.", 338 | "notes_es-ES": " En el apartado \"Exportar datos de cuenta\" selecciona \"Iniciar informe\". Una vez hecho, espera a que llegue un mensaje de correo electrónico.", 339 | "notes_cs-CZ": "In the section \"Export account data\" select \"Start report\". Once done, wait for an email to arrive." 340 | }, 341 | 342 | { 343 | "name": "Gmail", 344 | "url": "https://takeout.google.com/", 345 | "difficulty": "easy", 346 | "notes": "Since Gmail is a service by Google, please refer to the instructions for [Google](./#google)." 347 | }, 348 | 349 | { 350 | "name": "GoDaddy", 351 | "url": "https://sso.godaddy.com/preferences/download-data", 352 | "difficulty": "easy", 353 | "notes": "After signing in, go to Account Settings → Download Your Information. You'll receive a file containing your account info including name, email, and address." 354 | }, 355 | 356 | { 357 | "name": "GOG", 358 | "url": "https://support.gog.com/hc/en-us/requests/new?form=other&product=gog", 359 | "difficulty": "hard", 360 | "notes": "Go to the url provided above and submit a request or send an email to [privacy@gog.com](mailto:privacy@gog.com).", 361 | "notes_es-ES": "Entra en la dirección indicada arriba y envía una solicitud o envía un email a [privacy@gog.com](mailto:privacy@gog.com).", 362 | "notes_cs-CZ": "Go to the url provided above and submit a request or send an email to [privacy@gog.com](mailto:privacy@gog.com)." 363 | }, 364 | 365 | { 366 | "name": "Google", 367 | "meta": "popular", 368 | "url": "https://takeout.google.com/", 369 | "difficulty": "easy", 370 | "notes": "Go to [Google Takeout](https://takeout.google.com/) while logged in to a Google Account and select the data from every Google Service you need/want and click \"Next Step\". Then you can choose between export now or once every 2 months for 1 year, the file type and size. Click \"Create Export\" and wait until the process is finished. Then, just download your data.", 371 | "notes_es-ES": "Ve a https://takeout.google.com/, inicia sesión con tu cuenta de Google, selecciona los servicios que necesites. Puedes elegir entre exportar ahora o exportar cada 2 meses durante un año.", 372 | "notes_pl-PL": "Wejdź na stronę https://takeout.google.com/, zaloguj się za pomocą swojego konta Google, wybierz potrzebne usługi. Możesz wybrać eksport teraz lub eksport co 2 miesiące przez rok." 373 | }, 374 | 375 | { 376 | "name": "Gravatar", 377 | "url": "https://gravatar.com/", 378 | "difficulty": "easy", 379 | "notes": "While logged in click on your email, then \"Account settings\", then \"Security & data\" and export your data.", 380 | "notes_it-IT": "Dopo aver effettuato l'accesso, clicca sulla tua email, poi su \"Impostazioni dell'account\", \"Sicurezza e dati\" ed esporta i tuoi dati." 381 | }, 382 | 383 | { 384 | "name": "Huawei", 385 | "url": "https://consumer.huawei.com/en/support/content/en-us00746223/", 386 | "difficulty": "medium", 387 | "notes": "Log in to your HUAWEI ID and then click Privacy Centre > Request Your Data. When you request a copy of your data, Huawei will prepare the data you have requested. After the data is ready, you can download it to your device and will be available for 21 days. If you need to download the data after the expiry date, you need to submit a new request." 388 | }, 389 | 390 | { 391 | "name": "Hype", 392 | "url": "https://www.hype.it/privacy", 393 | "email": "dpo@hype.it", 394 | "difficulty": "hard", 395 | "notes": "Contact the customer support via email and request a copy of your data.", 396 | "notes_it-IT": "Contatta l'assistenza clienti via email e richiedi una copia dei tuoi dati." 397 | }, 398 | 399 | { 400 | "name": "Hypixel", 401 | "url": "https://hypixel.net/data-request", 402 | "difficulty": "hard", 403 | "notes": "Go to the URL above and submit a request. Image of government-issued ID is required." 404 | }, 405 | 406 | { 407 | "name": "Infinibrowser", 408 | "url": "https://infinibrowser.wiki/profile/settings", 409 | "difficulty": "easy", 410 | "notes": "Go to the url provided and press the Download button under Privacy." 411 | }, 412 | 413 | { 414 | "name": "ING", 415 | "url": "https://www.ing.com/Privacy-Statement.htm", 416 | "difficulty": "hard", 417 | "notes": "Go to the url provided above and in section 9, 'Contact and questions', you must find the email address associated with your country. You will have to send an email to the corresponding address, stating that you want to obtain a copy of your personal data. You must provide your name, address and ID.", 418 | "notes_es-ES": "Entra en la dirección indicada arriba y en la sección 9 'Contacto y preguntas', debes buscar la dirección de email asociada a tu país. Tienes que enviar un correo a la dirección correspondiente, indicando que quieres obtener una copia de tus datos personales. Debes aportar tu nombre, dirección y DNI.", 419 | "notes_cs-CZ": "Go to the url provided above and in section 9, 'Contact and questions', you must find the email address associated with your country. You will have to send an email to the corresponding address, stating that you want to obtain a copy of your personal data. You must provide your name, address and ID." 420 | }, 421 | 422 | { 423 | "name": "Instagram", 424 | "meta":"popular", 425 | "url": "https://www.instagram.com/download/request/", 426 | "difficulty": "medium", 427 | "notes": "Select 'Obtain the data' and fill in your email and password. Once done, wait for a message to arrive in the mail. WARNING: you can only do a data request once every 48 hours.", 428 | "notes_es-ES": "Selecciona 'Obtener los datos' y rellena tu email y contraseña. Una vez hecho, espera a que llegue un mensaje dentro del correo. AVISO: solo se puede hacer una solicitud de datos cada 48 horas", 429 | "notes_cs-CZ": "Select 'Obtain the data' and fill in your email and password. Once done, wait for a message to arrive in the mail. WARNING: you can only do a data request once every 48 hours." 430 | }, 431 | 432 | { 433 | "name": "JetBrains", 434 | "url": "https://account.jetbrains.com/profile-details/JetBrainsPersonalData.xlsx", 435 | "difficulty": "easy", 436 | "notes": "Requires Microsoft Excel or equivalent to open." 437 | }, 438 | 439 | { 440 | "name": "Kwai", 441 | "url": "https://www.kwai.com/legal?type=1", 442 | "difficulty": "hard", 443 | "notes": "According to item 12, you have to send an e-mail to [privacy@kwai.com](mailto:privacy@kwai.com), with your Kwai ID user to request your data.", 444 | "notes_pt-BR": "De acordo com o item 12, você tem de enviar um e-mail para [privacy@kwai.com](mailto:privacy@kwai.com), com o seu Kwai ID, para ter acesso aos dados.", 445 | "notes_pt-PT": "De acordo com o item 12, você tem de enviar um e-mail para [privacy@kwai.com](mailto:privacy@kwai.com), com o seu Kwai ID, para ter acesso aos dados." 446 | }, 447 | 448 | { 449 | "name": "Liberty Lines", 450 | "url": "https://www.libertylines.it/en/privacy-policy/", 451 | "url_it-IT": "https://www.libertylines.it/informativa-sulla-privacy/", 452 | "difficulty": "hard", 453 | "email": "privacy@libertylines.it", 454 | "notes": "Send an email requesting a copy of your data.", 455 | "notes_it-IT": "Invia una email richiedendo una copia dei tuoi dati." 456 | }, 457 | 458 | { 459 | "name": "Lil'bots", 460 | "url": "https://www.lilbots.io/pages/privacy-policy", 461 | "difficulty": "hard", 462 | "email": "privacy@lilbots.io", 463 | "notes": "Send an email requesting a copy of your data." 464 | }, 465 | 466 | { 467 | "name": "Linkedin", 468 | "url": "https://www.linkedin.com/", 469 | "difficulty": "easy", 470 | "notes": "1.-Click the Me icon at the top of your LinkedIn homepage. 2.-Select Settings & Privacy from the dropdown. 3.-Click the Data Privacy on the left rail. 4.-Under the How LinkedIn uses your data section, click Get a copy of your data. 5.-Select the data that you’re looking for and Request archive.", 471 | "notes_es-ES": "1.-Click the Me icon at the top of your LinkedIn homepage. 2.-Select Settings & Privacy from the dropdown. 3.-Click the Data Privacy on the left rail. 4.-Under the How LinkedIn uses your data section, click Get a copy of your data. 5.-Select the data that you’re looking for and Request archive.", 472 | "notes_cs-CZ": "1.-Click the Me icon at the top of your LinkedIn homepage. 2.-Select Settings & Privacy from the dropdown. 3.-Click the Data Privacy on the left rail. 4.-Under the How LinkedIn uses your data section, click Get a copy of your data. 5.-Select the data that you’re looking for and Request archive." 473 | }, 474 | 475 | { 476 | "name": "Linode", 477 | "url": "https://www.linode.com/legal-dpr/", 478 | "difficulty": "hard", 479 | "notes": "Check the boxes under the \"Personal Data Disclosure\" section" 480 | }, 481 | 482 | { 483 | "name": "Livelo", 484 | "url": "https://www.livelo.com.br/profile?occsite=points&tab=tab_label_1", 485 | "difficulty": "easy" 486 | }, 487 | 488 | { 489 | "name": "Lolja", 490 | "url": "https://www.lolja.com.br/privacidade/", 491 | "difficulty": "hard", 492 | "notes": "Send an email to [sac@lolja.com.br](mailto:sac@lolja.com.br) with all relevant information (name, email address, etc).", 493 | "notes_pt-BR": "Envie um e-mail para [sac@lolja.com.br](mailto:sac@lolja.com.br) com todas as informações relevantes (nome, endereço de e-mail, etc).", 494 | "notes_pt-PT": "Envie um e-mail para [sac@lolja.com.br](mailto:sac@lolja.com.br) com todas as informações relevantes (nome, endereço de e-mail, etc)." 495 | }, 496 | 497 | { 498 | "name": "Lyconet", 499 | "url": "https://www.lyconet.com/", 500 | "difficulty": "hard", 501 | "email": "data.protection@lyconet.com", 502 | "notes": "Send an email requesting a copy of your data.", 503 | "notes_it-IT": "Invia un'email richiedendo una copia dei tuoi dati." 504 | }, 505 | 506 | { 507 | "name": "Lyft", 508 | "url": "https://www.lyft.com/privacy/data", 509 | "difficulty": "easy", 510 | "notes": "Go to provided URL -> Log in (if prompted) -> Click the 'Start' button under 'Download Data'." 511 | }, 512 | 513 | { 514 | "name": "Mailfence", 515 | "url": "https://kb.mailfence.com/kb/how-to-export-data-from-mailfence-account/", 516 | "difficulty": "medium", 517 | "notes": "Log in to your account -> Go to 'Settings'-> 'Account' -> 'Back-up'.", 518 | "notes_fr-FR": "Connectez-vous à votre compte -> Allez dans les 'Paramètres' -> 'Compte' -> 'Sauvegardes'.", 519 | "notes_nl-NL": "Log in op jouw account -> Ga naar 'Instellingen' -> 'Account' -> 'Back-up'.", 520 | "notes_pt-PT": "Faça login na sua conta -> Vá para as 'Configurações' -> 'Conta' -> 'Cópia de segurança'.", 521 | "notes_es-ES": "Acceda a su cuenta -> Vaya a 'Ajustes' -> 'Cuenta' -> 'Copias de seguridad'.", 522 | "notes_it-IT": "Accedi al tuo account -> Vai alle 'Parametri' -> 'Account' -> 'Back up'.", 523 | "notes_de-DE": "Melde dich in deinem Konto an -> Gehe zu den 'Einstellungen' -> 'Benutzerkonto' -> 'Backup'.", 524 | "notes_ru-RU": "Войдите в свою учетную запись -> Перейти к 'настройкам' -> 'Аккаунт' -> 'Резервное копирование'." 525 | }, 526 | 527 | { 528 | "name": "MEGA", 529 | "url": "https://mega.nz/fm/account/security", 530 | "difficulty": "easy", 531 | "notes": "Log in and navigate to Settings → Security. Under \"Download your personal data,\" click the \"Download\" button to receive a file with your account and metadata. Note: This does not include your stored files, only metadata and account info." 532 | }, 533 | 534 | { 535 | "name": "Microsoft", 536 | "url": "https://microsoft.com/", 537 | "difficulty": "hard", 538 | "notes": "Not all personal data can be accessed using the tools above. If you want to access all the data it is needed to contact them using 'How to contact with us' or using their web form..", 539 | "notes_es-ES": "No todos los datos personales se pueden acceder a través de las herramientas enlazadas. Si quieres acceder a todos los datos que posee Microsoft es necesario contactar con ellos utilizando 'Contactar con nosotros'.", 540 | "notes_cs-CZ": "Not all personal data can be accessed using the tools above. If you want to access all the data it is needed to contact them using 'How to contact with us' or using their web form.." 541 | }, 542 | 543 | { 544 | "name": "Minecraft Tools", 545 | "url": "https://minecraft.tools/en/contact.php", 546 | "url_fr-FR": "https://minecraft.tools/fr/contact.php", 547 | "url_de-DE": "https://minecraft.tools/de/contact.php", 548 | "url_it-IT": "https://minecraft.tools/it/contact.php", 549 | "url_ru-RU": "https://minecraft.tools/ru/contact.php", 550 | "url_es-ES": "https://minecraft.tools/es/contact.php", 551 | "difficulty": "impossible", 552 | "email": "contact@minecraft.tools", 553 | "notes": "The only way to contact them is by email, but no one responds.", 554 | "notes_it-IT": "L'unico modo per contattarli è tramite email, ma nessuno risponde." 555 | }, 556 | 557 | { 558 | "name": "Modrinth", 559 | "url": "https://modrinth.com/legal/privacy", 560 | "difficulty": "hard", 561 | "email": "gdpr@modrinth.com", 562 | "notes": "Send an email requesting a copy of your data.", 563 | "notes_it-IT": "Invia una email richiedendo una copia dei tuoi dati." 564 | }, 565 | 566 | { 567 | "name": "Mozilla", 568 | "url": "https://www.mozilla.org/privacy/#contact", 569 | "difficulty": "medium", 570 | "notes": "Go to the url provided abobe and click on 'See here for Data Subject Access Requests' and fill a form or send an email to [compliance@mozilla.com](mailto:compliance@mozilla.com).", 571 | "notes_es-ES": "Entra en la dirección indicada arriba y haz click en 'Haz clic aquí para solicitar acceso a los datos personales' y rellena un formulario o envía un email a [compliance@mozilla.com](mailto:compliance@mozilla.com).", 572 | "notes_pl-PL": "Wejdź na powyższy adres, kliknij na 'Click here to request access to personal data' i wypełnij formularz lub wyślij wiadomość e-mail na adres [compliance@mozilla.com](mailto:compliance@mozilla.com)." 573 | }, 574 | 575 | { 576 | "name": "MSI", 577 | "url": "https://es.msi.com/", 578 | "difficulty": "hard", 579 | "notes": "To exercise the right to request access to, or copies of, your Relevant Personal Data, together with information regarding the nature, Processing and disclosure of those Relevant Personal Data, or others of your rights, or to ask a question about these rights or any other provision of Privacy Policy, or about our Processing of your Personal Data, please use the contact [privacy-eu@msi.com](mailto:privacy-eu@msi.com)." 580 | }, 581 | 582 | { 583 | "name": "My Lands", 584 | "url": "https://uk.mlgame.org/", 585 | "url_ru-RU": "https://ru.mlgame.org/", 586 | "url_fr-FR": "https://fr.mlgame.org/", 587 | "url_it-IT": "https://it.mlgame.org/", 588 | "url_cs-CZ": "https://cz.mlgame.org/", 589 | "difficulty": "hard", 590 | "email": "support_uk@elyland.net", 591 | "notes": "Contact the customer support via email and ask to access your data. You should use the email of the country where you are registered: it's in the contacts, at the bottom of the website.", 592 | "notes_it-IT": "Contatta l'assistenza clienti via email e chiedi di accedere ai tuoi dati. Dovresti utilizzare l'email della nazione in cui sei registrato: è nei contatti, in fondo al sito web." 593 | }, 594 | 595 | { 596 | "name": "myWorld", 597 | "url": "https://www.myworld.com/", 598 | "difficulty": "hard", 599 | "email": "data.protection@myworld.com", 600 | "notes": "Send an email requesting a copy of your data.", 601 | "notes_it-IT": "Invia un'email richiedendo una copia dei tuoi dati." 602 | }, 603 | 604 | { 605 | "name": "Netflix", 606 | "meta": "popular", 607 | "url": "https://www.netflix.com/", 608 | "difficulty": "medium", 609 | "notes": "Go to https://www.netflix.com/account/getmyinfo and follow the instructions.", 610 | "notes_es-ES": "Go to https://www.netflix.com/account/getmyinfo and follow the instructions.", 611 | "notes_cs-CZ": "Go to https://www.netflix.com/account/getmyinfo and follow the instructions." 612 | }, 613 | 614 | { 615 | "name": "Nintendo", 616 | "url": "https://privacyportal-cdn.onetrust.com/dsarwebform/50b45312-ab08-436b-adc7-79156d8394f7/e0b5b569-7fb1-43c9-befc-0e789ed712fb.html", 617 | "difficulty": "hard", 618 | "notes": "Select information request under request type. Request can also be completed via telephone (+1 855-822-9548)." 619 | }, 620 | 621 | { 622 | "name": "Norton", 623 | "url": "https://privacyportal.onetrust.com/webform/25b84167-55d3-4099-84e2-c9e08ec67d54/4d9f34ca-cc1d-4578-9590-35834c92f17b", 624 | "difficulty": "easy", 625 | "notes": "Click the link above and fill the form to confirm the request.", 626 | "notes_pt-BR": "Clique no link acima e preencha o formulário para confirmar a solicitação.", 627 | "notes_pt-PT": "Clique no link acima e preencha o formulário para confirmar a solicitação." 628 | }, 629 | 630 | { 631 | "name": "Notion", 632 | "url": "https://www.notion.so/Privacy-Policy-3468d120cf614d4c9014c09f6adc9091", 633 | "difficulty": "hard", 634 | "email": "team@makenotion.com", 635 | "notes": "Contact the customer support via email and request a copy of your data.", 636 | "notes_it-IT": "Contatta l'assistenza clienti via email e richiedi una copia dei tuoi dati." 637 | }, 638 | 639 | { 640 | "name": "OpenAI", 641 | "meta": "popular", 642 | "url": "https://openai.com/policies/privacy-policy", 643 | "difficulty": "easy", 644 | "notes": "You can send an email to [dsar@openai.com](mailto:dsar@openai.com) or just click in Settings > Data Controls > Export Data. The link sent by e-mail will expire within 24 hours.", 645 | "notes_pt-BR": "Você pode enviar um e-mail para [dsar@openai.com](mailto:dsar@openai.com) ou simplesmente ir para Settings > Data Controls > Export Data. O link enviado por e-mail expira em 24 horas.", 646 | "notes_pt-PT": "Você pode enviar um e-mail para [dsar@openai.com](mailto:dsar@openai.com) ou simplesmente ir para Settings > Data Controls > Export Data. O link enviado por e-mail expira em 24 horas." 647 | }, 648 | 649 | { 650 | "name": "PAGBET", 651 | "url": "https://assets.bet6.com.br/sistemans/skins/pagbet/doc/ba98aa02a1.pdf", 652 | "difficulty": "hard", 653 | "notes": "According to privacy policy (item 8), you have to send an e-mail to them requesting the data.", 654 | "notes_pt-BR": "De acordo com a política de privacidade (item 8), você tem de enviar um e-mail para eles, solicitando os dados.", 655 | "notes_pt-PT": "De acordo com a política de privacidade (item 8), você tem de enviar um e-mail para eles, solicitando os dados.", 656 | "email":"contato@pagbet.com" 657 | }, 658 | 659 | { 660 | "name": "Papernodes", 661 | "url": "https://papernodes.com", 662 | "difficulty": "easy", 663 | "notes": "Hover over More Pages then click on login, then go to account settings scroll down and u see Download my data then just press the download button then enter your password and all the data asociated to your account will be downloaded." 664 | }, 665 | 666 | { 667 | "name": "Patreon", 668 | "url": "https://privacy.patreon.com/?action=ACCESS&modal=take-control", 669 | "difficulty": "easy", 670 | "notes": "Click the link and confirm the request. The email with the data is usually sent within a few minutes." 671 | }, 672 | 673 | { 674 | "name": "Paypal Account", 675 | "url": "https://www.paypal.com/myaccount/privacy/data/dar", 676 | "difficulty": "easy", 677 | "notes": "Download all your personal data (transaction history excluded). Click on the 'send request' button, you will be notified via email once your data is ready." 678 | }, 679 | 680 | { 681 | "name": "Paypal Transactions", 682 | "url": "https://www.paypal.com/reports/dlog", 683 | "difficulty": "medium", 684 | "notes": "This page allows you to download all the transactions of your account. Select 'all transactions' in the 'transaction type' dropdown, insert the date interval you want (note: you cannot go back more than ~6 years). Then click 'create report'. You will receive an email once your report is ready. " 685 | }, 686 | 687 | { 688 | "name": "PcComponentes", 689 | "url": "https://www.pccomponentes.com/", 690 | "difficulty": "hard", 691 | "notes": "You will have to send a written request with your passport, or another identification document, to Av. Europa Parcela 2-3, Pol. Ind. Las Salinas 30840 Alhama de Murcia. You can also request the data throught a e-mail to [lopd@pccomponentes.com](mailto:lopd@pccomponentes.com).", 692 | "notes_es-ES": "Tienes que enviar una solicitud escrita con un documento identificativo a Av. Europa, Parcela 2-3, Pol. Ind. Las Salinas 30840 Alhama de Murcia. También puedes realizar la petición por e-mail a [lopd@pccomponentes.com](mailto:lopd@pccomponentes.com)", 693 | "notes_cs-CZ": "You will have to send a written request with your passport, or another identification document, to Av. Europa Parcela 2-3, Pol. Ind. Las Salinas 30840 Alhama de Murcia. You can also request the data throught a e-mail to [lopd@pccomponentes.com](mailto:lopd@pccomponentes.com)." 694 | }, 695 | 696 | { 697 | "name": "PlayStation Network", 698 | "url": "https://id.sonyentertainmentnetwork.com/id/management_ca/?entry=privacy_settings", 699 | "difficulty": "easy", 700 | "notes": "Click on your profile icon, then on \"Account Settings\", then on \"Privacy Settings\", then on \"Data Access Request\", then on \"Request Data\". You will receive an email with a link to download your data when it is ready.", 701 | "notes_it-IT": "Fai clic sull'icona del tuo profilo, quindi su \"Impostazioni account\", quindi su \"Impostazioni privacy\", quindi su \"Richiesta di accesso ai dati\", quindi su \"Richiedi i dati\". Riceverai un'email con un collegamento per scaricare i tuoi dati quando saranno pronti." 702 | }, 703 | 704 | { 705 | "name": "Plex", 706 | "url": "https://preferences.plex.tv/", 707 | "difficulty": "easy", 708 | "notes": "Select your country and state of residence, then click \"Start Access Request\" to receive a copy of your account data. This replaces the older email-based request process.", 709 | "email": "dataprotection@plex.tv", 710 | "email_body": "Please send me a copy of my account data. My username is XXXXXX." 711 | }, 712 | 713 | { 714 | "name": "Popeyes", 715 | "url": "https://privacyportal-eu-cdn.onetrust.com/dsarwebform/7ae425dd-1c76-46b0-a1b4-2422a364fae3/draft/1d4481aa-204a-4cb5-a40a-82e4369d16b2.html", 716 | "difficulty": "medium", 717 | "notes": "U.S. and Canada residents can fill out the linked web form or email [privacy@rbi.com](mailto:privacy@rbi.com)" 718 | }, 719 | 720 | { 721 | "name": "PornHub", 722 | "url": "https://pornhub.com/information/privacy", 723 | "difficulty": "medium", 724 | "notes": "Go to the url provided above and click on the button 'Request a copy of my personal data', at the bottom of the page. They will send you an email to confirm the email address where they will send your data and another to verify your username and password. You will receive your data in about 24 hours.", 725 | "notes_es-ES": "Entra en la dirección indicada arriba y haz click en el botón 'Request a copy of my personal data', al final de la página. Te enviarán un email para confirmar la dirección de correo electrónico donde se enviarán los datos y otro para confirmar tu usuario y contraseña. En un periodo de aproximadamente 24 horas recibiras tus datos.", 726 | "notes_cs-CZ": "Go to the url provided above and click on the button 'Request a copy of my personal data', at the bottom of the page. They will send you an email to confirm the email address where they will send your data and another to verify your username and password. You will receive your data in about 24 hours." 727 | }, 728 | 729 | { 730 | "name": "Quaidesamours", 731 | "url": "https://www.quaidesamours.com/", 732 | "difficulty": "easy", 733 | "notes": "You can easily contact the team through the contact page or email listed in the site's footer. Data access or deletion requests are handled manually upon request.", 734 | "email": "contact@quaidesamours.com", 735 | "email_subject": "Personal Data Request", 736 | "email_body": "Hello, I would like to request access to or deletion of my personal data associated with my account on your site. Please confirm receipt of this request. Thank you." 737 | }, 738 | 739 | { 740 | "name": "Reddit", 741 | "meta": "popular", 742 | "url": "https://www.reddit.com/settings/data-request", 743 | "difficulty": "easy", 744 | "notes": "Click on getting the data from a range of time or all. Then, wait for the private message in reddit, click in \"Download here\" and we are done. WARNING: you can only do a data request once every 30 days. You must use the [ticket form](https://www.reddithelp.com/hc/requests/new?ticket_form_id=360001370251) if you do not have access to your account.", 745 | "notes_es-ES": "Puedes obtener tus datos desde un intervalo de tiempo o todos los datos. Recibirás un mensaje privado con el que podrás descargar los datos.", 746 | "notes_pl-PL": "Kliknij na pobieranie danych z zakresu czasu lub wszystkich. Następnie poczekaj na prywatną wiadomość w reddit, kliknij w 'Pobierz tutaj' i gotowe. UWAGA: prośbę o dane można wykonać tylko raz na 30 dni." 747 | }, 748 | 749 | { 750 | "name": "Revolut", 751 | "url": "https://www.revolut.com/privacy-policy/", 752 | "difficulty": "easy", 753 | "notes": "From the app, go to the profile icon, then to \"Account\" -> \"Documents\" -> \"General\" -> \"Subject access request\". You will get a PDF document with your data.", 754 | "notes_it-IT": "Dall'applicazione, vai sull'icona del profilo, quindi su \"Conto\" -> \"Documenti\" -> \"Generale\" -> \"Richiesta di accesso ai dati personali\". Otterrai un documento PDF con i tuoi dati." 755 | }, 756 | 757 | { 758 | "name": "Riot Games", 759 | "url": "https://support-leagueoflegends.riotgames.com/hc/en-us/requests/new", 760 | "difficulty": "hard", 761 | "notes": "You would have to make a ticket requesting your data, which will show data recorded on League of Legends, Valorant and Runeterra accounts. After filing a ticket, you have to wait 30 days for an email to be sent to you containing a zipped file, which contains all your data." 762 | }, 763 | 764 | { 765 | "name": "Roblox", 766 | "url": "https://www.roblox.com/support", 767 | "difficulty": "limited", 768 | "notes": "Select \"Right of Access\" under \"Data Privacy Requests\". Photo ID is required as proof of residency." 769 | }, 770 | 771 | { 772 | "name": "Roku", 773 | "url": "https://privacy.roku.com/contact", 774 | "difficulty": "hard", 775 | "notes": "Select \"Data access request\" for the topic." 776 | }, 777 | 778 | { 779 | "name": "Samsung", 780 | "url": "https://privacy.samsung.com/mydata/downloads/request", 781 | "difficulty": "medium", 782 | "notes": "Select the services you want to retrieve your data for, or click the first one and click the \"All\" button at the bottom of the screen." 783 | }, 784 | 785 | { 786 | "name": "Snapchat", 787 | "meta": "popular", 788 | "url": "https://support.snapchat.com/en-US/a/download-my-data", 789 | "difficulty": "easy", 790 | "notes": "Log into your account on accounts.snapchat.com and click on \"My Data\". Once you submit your request, Snapchat will send you a download link via email to the verified email address associated with your account." 791 | }, 792 | 793 | { 794 | "name": "SpaceHey", 795 | "url": "https://spacehey.com/settings", 796 | "difficulty": "easy", 797 | "notes": "Go to the URL provided above and click on 'Export your Account Data'.", 798 | "notes_es-ES": "Vaya a la URL proporcionada arriba y haga clic en 'Export your Account Data'.", 799 | "notes_pl-PL": "Przejdź do adresu URL podanego powyżej i kliknij 'Export your Account Data'." 800 | }, 801 | 802 | { 803 | "name": "Spotify", 804 | "url": "https://www.spotify.com/account/privacy/", 805 | "difficulty": "medium", 806 | "notes": "Log into your Spotify account, go to 'Profile > Account > Privacy settings' and follow the steps at the bottom of the page.", 807 | "notes_es-ES": "Tienes que iniciar sesión en tu cuenta de Spotify, ir a 'Perfil > Cuenta > Ajustes de privacidad' y seguir los pasos al final de la página.", 808 | "notes_pl-PL": "Musisz zalogować się na swoje konto Spotify, przejść do 'Profil > Konto > Ustawienia prywatności' i postępować zgodnie z instrukcjami na dole strony." 809 | }, 810 | 811 | { 812 | "name": "Stack Exchange (Stack Overflow)", 813 | "url": "https://stackoverflow.com/legal/gdpr/request", 814 | "difficulty": "hard", 815 | "notes": "You might need to contact support to get your data deleted from all Stack Exchange network websites. Your posts will be anonymized, not deleted." 816 | }, 817 | 818 | { 819 | "name": "Starbucks", 820 | "url": "https://www.starbucks.com/terms/privacy-policy/", 821 | "difficulty": "hard", 822 | "notes": "U.S. residents should use this form, and Canadian residents should use this form. All others must send an email.", 823 | "email": "privacy@starbucks.com" 824 | }, 825 | 826 | { 827 | "name": "Steam", 828 | "url": "https://help.steampowered.com/en/accountdata", 829 | "difficulty": "medium", 830 | "notes": "In most cases, you can access, manage, or delete Personal Data in the Privacy Dashboard, but you may also contact Valve with questions or requests by summiting a support ticket.", 831 | "notes_es-ES": "En la mayoría de casos, puedes acceder y borrar tus datos personales en el Panel de Privacidad, pero puedes contactar con Valve si tienes problemas o preguntas mediante un ticket de soporte", 832 | "notes_cs-CZ": "In most cases, you can access, manage, or delete Personal Data in the Privacy Dashboard, but you may also contact Valve with questions or requests by summiting a support ticket." 833 | }, 834 | 835 | { 836 | "name": "Student Beans", 837 | "url": "https://accounts.studentbeans.com/uk/info/privacy", 838 | "difficulty": "hard", 839 | "notes": "They require two different forms of identification (acceptable documents are Driver's License, Passport, and Student ID card) to process access requests, which are only accepted via email.", 840 | "email": "infosec@studentbeans.com", 841 | "email_body": "Please send me a copy of my personal data." 842 | }, 843 | 844 | { 845 | "name": "T-Mobile", 846 | "url": "https://privacyportal-t-mobile.my.onetrust.com/webform/d4a925f0-4ebf-40ba-817b-bccc309e602f/7831d667-1ebc-4b1e-a941-e545cb0d0523", 847 | "difficulty": "hard", 848 | "notes": "The email and phone number you use on the form must be associated with your T-Mobile account. Proof of identity (Driver's License or Passport, New Hampshire residents cannot submit a Driver's License as proof) is required." 849 | }, 850 | 851 | { 852 | "name": "T-shirt personalisé", 853 | "url": "https://vive-lamode.com/collections/t-shirt-personnalise", 854 | "difficulty": "easy" 855 | }, 856 | 857 | { 858 | "name": "Taobao", 859 | "url": "https://taobao.com", 860 | "difficulty": "hard", 861 | "notes": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'", 862 | "notes_es-ES": "Dependiendo de donde vivas tendrás que seguir unas instrucciones u otras de https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm", 863 | "notes_cs-CZ": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'" 864 | }, 865 | 866 | { 867 | "name": "Telegram", 868 | "url": "https://t.me/gdprbot", 869 | "difficulty": "easy", 870 | "notes": "The bots [@gdprbot](https://t.me/gdprbot) and [@lgpdbot](https://t.me/lgpdbot) in Telegram show us how to obtain our data in the app. The use of Telegram Desktop is needed in order to get the data. Once there, go to options, settings, advanced, export Telegram data, choose everything you want/need and export it in HTML or JSON format.", 871 | "notes_es-ES": "Los bots [@gdprbot](https://t.me/gdprbot) and [@lgpdbot](https://t.me/lgpdbot) nos guía en el proceso de obtención de datos. Es necesario usar Telegram Desktop. Ve a \"Opciones\", \"Configuración\", \"Avanzado\" y en \"Exportar datos de Telegram\", puedes elegir los datos que necesites, en formato HTML o JSON.", 872 | "notes_pt-BR": "Os bots [@gdprbot](https://t.me/gdprbot) e [@lgpdbot](https://t.me/lgpdbot) ajuda na obtenção dos dados pessoas. Em ambos os casos, é preciso usar o Telegram Desktop, em \"Opções\", \"Configuração\", \"Avançado\" e \"Exportar dados do Telegram\", pode escolher os dados que você quer/necessita, seja em formato HTML ou em formato JSON." 873 | }, 874 | 875 | { 876 | "name": "Tiktok", 877 | "meta": "popular", 878 | "url": "https://www.tiktok.com/legal/report/privacy", 879 | "difficulty": "medium", 880 | "notes": "Go to the form provided in the url above and fill it selecting the option 'Request information or an action regarding the account data'.", 881 | "notes_es-ES": "Ve al formulario indicado en la dirección superior y rellénalo seleccionando la opción 'Solicitar información o una acción relativa a los datos de la cuenta'.", 882 | "notes_pl-PL": "Przejdź do powyższego formularza i wypełnij go wybierając opcję 'Request information or action on account details'" 883 | }, 884 | 885 | { 886 | "name": "Tim Hortons", 887 | "url": "https://privacyportal-eu-cdn.onetrust.com/dsarwebform/7ae425dd-1c76-46b0-a1b4-2422a364fae3/draft/1d4481aa-204a-4cb5-a40a-82e4369d16b2.html", 888 | "difficulty": "medium", 889 | "notes": "U.S. and Canada residents can fill out the linked web form or email [privacy@rbi.com](mailto:privacy@rbi.com)" 890 | }, 891 | 892 | { 893 | "name": "Tinder", 894 | "meta": "popular", 895 | "url": "https://account.gotinder.com/data", 896 | "difficulty": "easy", 897 | "notes": "Go to the url provided above, log-in with your account credentials and provide and e-mail to receive a link to your data", 898 | "notes_es-ES": "Ve a la dirección indicada arriba, inicia sesión y da un correo electrónico en el que recibir tus datos", 899 | "notes_cs-CZ": "Go to the url provided above, log-in with your account credentials and provide and e-mail to receive a link to your data" 900 | }, 901 | 902 | { 903 | "name": "Tmall", 904 | "url": "https://tmall.com", 905 | "difficulty": "hard", 906 | "notes": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'", 907 | "notes_es-ES": "Dependiendo de donde vivas tendrás que seguir unas instrucciones u otras de https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm", 908 | "notes_cs-CZ": "Depending on your area you must follow the instructions shown in https://www.alibabagroup.com/en/contact/law_e_commerce?spm=a271m.8038972.0.0.5a916d82MwfIzm'" 909 | }, 910 | 911 | { 912 | "name": "Twitch", 913 | "url": "https://twitch.tv/settings/security", 914 | "difficulty": "easy", 915 | "notes": "In Security and Privacy tab on Settings, press \"Request a Copy of Your Data\" button, select categories and the date range of the data that you want, and submit a request. Request should be completed within 14 days. You will receive Twitch notification once your data is ready to download.", 916 | "notes_ko-KR": "설정의 Security and Privacy 탭에서 \"Request a Copy of Your Data\" 버튼을 누르고 원하는 데이터의 카테고리와 날짜 범위를 선택한 후 요청을 제출하세요. 요청은 14일 이내에 완료될 것입니다. 데이터를 다운로드할 준비가 되면 Twitch 알림을 받을 것입니다." 917 | }, 918 | 919 | { 920 | "name": "Twitter", 921 | "meta": "popular", 922 | "url": "https://twitter.com/settings/your_twitter_data", 923 | "difficulty": "medium", 924 | "notes": "Go to your account settings (\"Settings and privacy\"), in the \"Account\" section, click on \"Your Twitter data\", then enter your password in \"Download your Twitter data\" and then click \"Confirm \". Once the download is ready, they will send you an email to your associated email account and from there you can download a compressed file of your Twitter data.", 925 | "notes_es-ES": "Ve a la configuración de tu cuenta (\"Configuración y privacidad\"), en la sección \"Cuenta\", haz clic en \"Tus datos de Twitter\", posteriormente introduce tu contraseña en \"Descarga tus datos de Twitter\" y posteriormente haz clic en \"Confirmar\". Una vez que la descarga esté lista, te enviaran un correo electrónico a tu cuenta de correo asociada y desde ahí podras descargar un archivo comprimido de tus datos de Twitter.", 926 | "notes_cs-CZ": "Go to your account settings (\"Settings and privacy\"), in the \"Account\" section, click on \"Your Twitter data\", then enter your password in \"Download your Twitter data\" and then click \"Confirm \". Once the download is ready, they will send you an email to your associated email account and from there you can download a compressed file of your Twitter data." 927 | }, 928 | 929 | { 930 | "name": "Uber", 931 | "url": "https://myprivacy.uber.com/privacy/exploreyourdata/download", 932 | "difficulty": "medium", 933 | "notes": "Details of the export will be sent via email when ready." 934 | }, 935 | 936 | { 937 | "name": "Ubisoft", 938 | "url": "https://account.ubisoft.com/en-US/privacy-settings", 939 | "difficulty": "medium", 940 | "notes": "Scroll down to the bottom of the page and request your data. They will send an email to you once your data download is ready. Emails take up to 24 hours to be sent." 941 | }, 942 | 943 | { 944 | "name": "UniCredit", 945 | "url": "https://www.unicreditgroup.eu/en/info/privacy.html", 946 | "url_it-IT": "https://www.unicreditgroup.eu/it/info/privacy.html", 947 | "difficulty": "hard", 948 | "email": "diritti.privacy@unicredit.eu", 949 | "notes": "Contact the customer support via email and request a copy of your data.", 950 | "notes_it-IT": "Contatta l'assistenza clienti via email e richiedi una copia dei tuoi dati." 951 | }, 952 | 953 | { 954 | "name": "Universidad Complutense de Madrid", 955 | "url": "https://www.ucm.es/como-ejercer-los-derechos", 956 | "difficulty": "hard", 957 | "notes": "You have to present a request form through E-mail or in person at the registry with your ID.", 958 | "notes_es-ES": "Tienes que presentar una solicitud mediante E-mail o en el registro con tu DNI.", 959 | "notes_cs-CZ": "You have to present a request form through E-mail or in person at the registry with your ID." 960 | }, 961 | 962 | { 963 | "name": "UOL", 964 | "url": "https://sac.uol.com.br/ajuda/content/como-solicitar-o-levantamento-dos-meus-dados-cadastrados-no-uol", 965 | "difficulty": "easy", 966 | "notes": "Just click in \"Clique aqui\" and click in \"Solicitar envio de dados\". An email is sent immediately.", 967 | "notes_pt-BR": "Basta clicar em \"Clique aqui\" e depois em \"Solicitar envio de dados\". Um e-mail é enviado na hora.", 968 | "notes_pt-PT": "Basta clicar em \"Clique aqui\" e depois em \"Solicitar envio de dados\". Um e-mail é enviado na hora." 969 | }, 970 | 971 | { 972 | "name": "Uphold", 973 | "url": "https://support.uphold.com/hc/en-us/requests/new?category=data_and_privacy_inquiries", 974 | "difficulty": "hard", 975 | "notes": "Contact the customer support with the provided form and request your data.", 976 | "notes_it-IT": "Contatta l'assistenza clienti con il modulo fornito e richiedi i tuoi dati." 977 | }, 978 | 979 | { 980 | "name": "USACO Guide", 981 | "url": "https://usaco.guide/settings#user-data", 982 | "difficulty": "easy", 983 | "notes": "Click \"Export User Data\". The download will start immediately." 984 | }, 985 | 986 | { 987 | "name": "Vinted", 988 | "url": "https://www.vinted.com/request_data_export", 989 | "url_cs-CZ": "https://www.vinted.cz/request_data_export", 990 | "url_de-DE": "https://www.vinted.de/request_data_export", 991 | "url_es-ES": "https://www.vinted.es/request_data_export", 992 | "url_fr-FR": "https://www.vinted.fr/request_data_export", 993 | "url_it-IT": "https://www.vinted.it/request_data_export", 994 | "url_nl-NL": "https://www.vinted.nl/request_data_export", 995 | "url_pl-PL": "https://www.vinted.pl/request_data_export", 996 | "url_pt-PT": "https://www.vinted.pt/request_data_export", 997 | "url_en-GB": "https://www.vinted.co.uk/request_data_export", 998 | "difficulty": "easy", 999 | "notes": "Click on your profile icon, then \"Settings\", \"Privacy settings\", \"Download account data\" and \"Request data\".", 1000 | "notes_it-IT": "Fai clic sull'icona del tuo profilo, quindi su \"Impostazioni\", \"Impostazioni di privacy\", \"Scarica i dati del tuo account\" e \"Richiedi i dati\"." 1001 | }, 1002 | 1003 | { 1004 | "name": "VirtCloud", 1005 | "url": "https://virtcloud.net", 1006 | "difficulty": "hard", 1007 | "notes": "To request your account data, please send an email to info@virtcloud.net with the subject 'Account Data Request'. Include your full name and registered email address. Once verified, a copy of all data associated with your account will be sent to you within 48 hours." 1008 | }, 1009 | 1010 | { 1011 | "name": "Walmart", 1012 | "url": "https://cpa-ui.walmart.com/affirmation?brandCode=WMT", 1013 | "difficulty": "hard", 1014 | "notes": "They only accept requests from California and Virginia, but they only check the state selected from the dropdown at the beginning." 1015 | }, 1016 | 1017 | { 1018 | "name": "WeChat", 1019 | "url": "https://help.wechat.com/cgi-bin/micromsg-bin/oshelpcenter?opcode=2&id=171213ezniaf1712137znmer", 1020 | "difficulty": "easy", 1021 | "notes": "Go to WeChat > Me > Settings > Privacy > My Information & Authorizations > View and Export Personal Data to request your data." 1022 | }, 1023 | 1024 | { 1025 | "name": "WhatsApp", 1026 | "meta": "popular", 1027 | "url": "https://www.whatsapp.com/", 1028 | "difficulty": "easy", 1029 | "notes": "Open the application and go to Settings > Account > Request info. from my account. Select \"Request report \", that concludes the process. NOTICE: The report will be ready in approximately 3 days. When it is available, you will have a few weeks to download it. If you delete your account or modify the phone, the request will be canceled.", 1030 | "notes_es-ES": "Abre la apliacion y diríjase a Ajustes > Cuenta > Solicitar info. de mi cuenta. Selecciona \"Solicitar informe\" y con esto hemos acabado. AVISO: El informe estará listo en aproximadamente 3 días. Cuando esté disponible, tendras unas semanas para descargarlo. Si eliminas tu cuenta o modificas el telefono se cancelará la solicitud.", 1031 | "notes_cs-CZ": "Open the application and go to Settings > Account > Request info. from my account. Select \"Request report \", that concludes the process. NOTICE: The report will be ready in approximately 3 days. When it is available, you will have a few weeks to download it. If you delete your account or modify the phone, the request will be canceled." 1032 | }, 1033 | 1034 | { 1035 | "name": "Wikimedia", 1036 | "url": "https://www.mediawiki.org/wiki/API:Userinfo", 1037 | "difficulty": "hard", 1038 | "notes": "Wikipedia's data access is easy, but other data from Wikimedia like donation history can only be retrieved through email to [privacy@wikimedia.org](mailto:privacy@wikimedia.org)", 1039 | "notes_es-ES": "Acceder a tu información de Wikipedia es fácil, pero acceder a otros datos de la fundación Wikimedia, como el historial de donaciones, sólo puede hacerse mediante correo a [privacy@wikimedia.org](mailto:privacy@wikimedia.org)" 1040 | }, 1041 | 1042 | { 1043 | "name": "Wikipedia", 1044 | "url": "https://en.wikipedia.org/w/api.php?action=query&meta=userinfo&uiprop=email%7Cregistrationdate%7Crights%7Cgroups%7Coptions%7Ceditcount%7Clatestcontrib", 1045 | "url_es-ES": "https://es.wikipedia.org/w/api.php?action=query&meta=userinfo&uiprop=email%7Cregistrationdate%7Crights%7Cgroups%7Coptions%7Ceditcount%7Clatestcontrib", 1046 | "difficulty": "easy", 1047 | "notes": "Everything is accesible through an API link. For other wikipedias, you can change the language changing the url.", 1048 | "notes_es-ES": "Toda tu información está accesible la API. Puedes cambiar el idioma de Wikipedia cambiando la url." 1049 | }, 1050 | 1051 | { 1052 | "name": "Withings", 1053 | "url": "https://account.withings.com/export/user_select", 1054 | "difficulty": "easy", 1055 | "notes": "Visit the linked paged to request your data. After a short while you'll receive an email and you can download your data." 1056 | }, 1057 | 1058 | { 1059 | "name": "Yahoo!", 1060 | "url": "https://yahoo.com/", 1061 | "url_de-DE": "https://de.yahoo.com/", 1062 | "url_en-GB": "https://uk.yahoo.com/", 1063 | "url_es-ES": "https://espanol.yahoo.com/", 1064 | "url_fr-FR": "https://fr.yahoo.com/", 1065 | "difficulty": "easy", 1066 | "notes": "Go to https://yahoo.mydashboard.oath.com/ with a Yahoo! account, scroll down and select 'Request a download' and on the next page you select all the data you want to download, then add an email that you want notify when the download will be ready, this process may take about 30 days." 1067 | }, 1068 | 1069 | { 1070 | "name": "Yoigo", 1071 | "url": "https://www.yoigo.com/", 1072 | "difficulty": "hard", 1073 | "notes": "You must to send e-mail to [datospersonales@yoigo.com](mailto:datospersonales@yoigo.com) with your DNI scaned by two sides with a request for what right you want to exercise." 1074 | }, 1075 | 1076 | { 1077 | "name": "YouTube / YouTube Music", 1078 | "url": "https://takeout.google.com/", 1079 | "difficulty": "easy", 1080 | "notes": "Since YouTube and YouTube Music are services by Google, please refer to the instructions for [Google](./#google)." 1081 | }, 1082 | 1083 | { 1084 | "name": "Zanichelli", 1085 | "url": "https://my.zanichelli.it/contattaci", 1086 | "difficulty": "hard", 1087 | "notes": "To request your data you need to contact customer service.", 1088 | "notes_it-IT": "Per richiedere i tuoi dati devi contattare il servizio clienti." 1089 | }, 1090 | 1091 | { 1092 | "name": "ZombieLink", 1093 | "url": "https://zombiesrungame.com/zombielink/account", 1094 | "difficulty": "easy", 1095 | "notes": "Scroll down to 'Data Download' and click red button: 'Request Download'", 1096 | "notes_pl-PL": "Zjedź w dół do 'Data Download' i kliknij czerwony przycisk: 'Request Download'" 1097 | }, 1098 | 1099 | { 1100 | "name": "Zoom", 1101 | "url": "https://zoom.us/gdpr", 1102 | "difficulty": "hard", 1103 | "notes": "Send an email requesting a copy of your data to [privacy@zoom.us](mailto:privacy@zoom.us).", 1104 | "notes_es-ES": "Envía un email pidiendo una copia de tus datos a [privacy@zoom.us](mailto:privacy@zoom.us).", 1105 | "notes_pl-PL": "Wyślij wiadomość e-mail z prośbą o przesłanie kopii swoich danych na adres [privacy@zoom.us](mailto:privacy@zoom.us)." 1106 | }, 1107 | 1108 | { 1109 | "name": "Zynga", 1110 | "url": "https://zyngasupport.helpshift.com/hc/en/29-zyngagames-com/faq/12820-how-do-i-download-or-delete-my-data/?s=legal-privacy-security&f=how-do-i-download-or-delete-my-data", 1111 | "difficulty": "easy", 1112 | "notes": "Select the game you want to request your data from. Enter your Player ID and PIN for that game. Click on 'Request a Copy of Your Account Data' to submit your request." 1113 | } 1114 | ] 1115 | --------------------------------------------------------------------------------