diff --git a/core/messages/about/en.ts b/core/messages/about/en.ts index f5733a40..4bf66c1d 100644 --- a/core/messages/about/en.ts +++ b/core/messages/about/en.ts @@ -1,10 +1,23 @@ import { i18n } from '../../i18n.ts' export const aboutMessages = i18n('about', { + allCiActionsAuthors: 'all CI actions authors', + allDependenciesAuthors: 'All our dependencies authors', + allNpmDependenciesAuthors: 'all npm dependencies authors', + closeCredits: 'Close credits', + companies: 'Companies', + contributors: 'Contributors', + credits: 'Credits', + devOpsTeam: 'manually list of people who helped with Docker images, nginx, etc', + evilMartians: 'Evil Martians', + hhLabs: 'h+h lab', opensource: 'This app is open source. Anyone, including developers and LLMs, can see exactly how it works and verify our promises.', + openSourceCommunity: 'Open Source Community', pageTitle: 'About', reportIssue: 'Report an issue', + slowReader: 'Slow Reader', + specialThanks: 'Special Thanks', version: 'App version', viewSources: 'View source code' }) diff --git a/core/pages/about.ts b/core/pages/about.ts index 4173010c..b9762a42 100644 --- a/core/pages/about.ts +++ b/core/pages/about.ts @@ -1,12 +1,55 @@ import { VERSION } from '@slowreader/api' +import { atom } from 'nanostores' import { createPage } from './common.ts' +import { contributorsMock } from './contributors.ts' + +export type Contributor = { + avatar_url: string + contributions: number + html_url: string + id: number + login: string + type: string +} + +const EXCLUDED_LOGINS = new Set(['actions-user', 'dependabot[bot]']) + +async function getContributors(): Promise { + let response = await fetch( + 'https://api.github.com/repos/hplush/slowreader/contributors' + ) + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`) + } + + let data = (await response.json()) as Contributor[] + return data.filter(contributor => !EXCLUDED_LOGINS.has(contributor.login)) +} export const aboutPage = createPage('about', () => { + let $credits = atom(null) + let $showCredits = atom(false) + + getContributors() + .then(data => { + $credits.set(data) + }) + .catch(() => { + $credits.set(contributorsMock) + }) + + function toggleCredits(): void { + $showCredits.set(!$showCredits.get()) + } + return { appVersion: VERSION, - exit() {}, - params: {} + credits: $credits, + exit() { }, + params: {}, + showCredits: $showCredits, + toggleCredits } }) diff --git a/core/pages/contributors.ts b/core/pages/contributors.ts new file mode 100644 index 00000000..7b6429bc --- /dev/null +++ b/core/pages/contributors.ts @@ -0,0 +1,662 @@ +export const contributorsMock = [ + { + "avatar_url": "https://avatars.githubusercontent.com/u/19343?v=4", + "contributions": 2700, + "events_url": "https://api.github.com/users/ai/events{/privacy}", + "followers_url": "https://api.github.com/users/ai/followers", + "following_url": "https://api.github.com/users/ai/following{/other_user}", + "gists_url": "https://api.github.com/users/ai/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ai", + "id": 19343, + "login": "ai", + "node_id": "MDQ6VXNlcjE5MzQz", + "organizations_url": "https://api.github.com/users/ai/orgs", + "received_events_url": "https://api.github.com/users/ai/received_events", + "repos_url": "https://api.github.com/users/ai/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ai/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ai/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ai", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4", + "contributions": 38, + "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}", + "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/apps/dependabot", + "id": 49699333, + "login": "dependabot[bot]", + "node_id": "MDM6Qm90NDk2OTkzMzM=", + "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs", + "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events", + "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions", + "type": "Bot", + "url": "https://api.github.com/users/dependabot%5Bbot%5D", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/146111474?v=4", + "contributions": 11, + "events_url": "https://api.github.com/users/ilyatitovich/events{/privacy}", + "followers_url": "https://api.github.com/users/ilyatitovich/followers", + "following_url": "https://api.github.com/users/ilyatitovich/following{/other_user}", + "gists_url": "https://api.github.com/users/ilyatitovich/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ilyatitovich", + "id": 146111474, + "login": "ilyatitovich", + "node_id": "U_kgDOCLV78g", + "organizations_url": "https://api.github.com/users/ilyatitovich/orgs", + "received_events_url": "https://api.github.com/users/ilyatitovich/received_events", + "repos_url": "https://api.github.com/users/ilyatitovich/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ilyatitovich/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ilyatitovich/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ilyatitovich", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/14779553?v=4", + "contributions": 5, + "events_url": "https://api.github.com/users/pshergie/events{/privacy}", + "followers_url": "https://api.github.com/users/pshergie/followers", + "following_url": "https://api.github.com/users/pshergie/following{/other_user}", + "gists_url": "https://api.github.com/users/pshergie/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/pshergie", + "id": 14779553, + "login": "pshergie", + "node_id": "MDQ6VXNlcjE0Nzc5NTUz", + "organizations_url": "https://api.github.com/users/pshergie/orgs", + "received_events_url": "https://api.github.com/users/pshergie/received_events", + "repos_url": "https://api.github.com/users/pshergie/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/pshergie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pshergie/subscriptions", + "type": "User", + "url": "https://api.github.com/users/pshergie", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/7286321?v=4", + "contributions": 5, + "events_url": "https://api.github.com/users/pekac/events{/privacy}", + "followers_url": "https://api.github.com/users/pekac/followers", + "following_url": "https://api.github.com/users/pekac/following{/other_user}", + "gists_url": "https://api.github.com/users/pekac/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/pekac", + "id": 7286321, + "login": "pekac", + "node_id": "MDQ6VXNlcjcyODYzMjE=", + "organizations_url": "https://api.github.com/users/pekac/orgs", + "received_events_url": "https://api.github.com/users/pekac/received_events", + "repos_url": "https://api.github.com/users/pekac/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/pekac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pekac/subscriptions", + "type": "User", + "url": "https://api.github.com/users/pekac", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/22644149?v=4", + "contributions": 5, + "events_url": "https://api.github.com/users/sashachabin/events{/privacy}", + "followers_url": "https://api.github.com/users/sashachabin/followers", + "following_url": "https://api.github.com/users/sashachabin/following{/other_user}", + "gists_url": "https://api.github.com/users/sashachabin/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/sashachabin", + "id": 22644149, + "login": "sashachabin", + "node_id": "MDQ6VXNlcjIyNjQ0MTQ5", + "organizations_url": "https://api.github.com/users/sashachabin/orgs", + "received_events_url": "https://api.github.com/users/sashachabin/received_events", + "repos_url": "https://api.github.com/users/sashachabin/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/sashachabin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sashachabin/subscriptions", + "type": "User", + "url": "https://api.github.com/users/sashachabin", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/23486601?v=4", + "contributions": 4, + "events_url": "https://api.github.com/users/3timeslazy/events{/privacy}", + "followers_url": "https://api.github.com/users/3timeslazy/followers", + "following_url": "https://api.github.com/users/3timeslazy/following{/other_user}", + "gists_url": "https://api.github.com/users/3timeslazy/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/3timeslazy", + "id": 23486601, + "login": "3timeslazy", + "node_id": "MDQ6VXNlcjIzNDg2NjAx", + "organizations_url": "https://api.github.com/users/3timeslazy/orgs", + "received_events_url": "https://api.github.com/users/3timeslazy/received_events", + "repos_url": "https://api.github.com/users/3timeslazy/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/3timeslazy/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/3timeslazy/subscriptions", + "type": "User", + "url": "https://api.github.com/users/3timeslazy", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/38650298?v=4", + "contributions": 4, + "events_url": "https://api.github.com/users/sanchopanda/events{/privacy}", + "followers_url": "https://api.github.com/users/sanchopanda/followers", + "following_url": "https://api.github.com/users/sanchopanda/following{/other_user}", + "gists_url": "https://api.github.com/users/sanchopanda/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/sanchopanda", + "id": 38650298, + "login": "sanchopanda", + "node_id": "MDQ6VXNlcjM4NjUwMjk4", + "organizations_url": "https://api.github.com/users/sanchopanda/orgs", + "received_events_url": "https://api.github.com/users/sanchopanda/received_events", + "repos_url": "https://api.github.com/users/sanchopanda/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/sanchopanda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sanchopanda/subscriptions", + "type": "User", + "url": "https://api.github.com/users/sanchopanda", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/229588?v=4", + "contributions": 3, + "events_url": "https://api.github.com/users/ashlkv/events{/privacy}", + "followers_url": "https://api.github.com/users/ashlkv/followers", + "following_url": "https://api.github.com/users/ashlkv/following{/other_user}", + "gists_url": "https://api.github.com/users/ashlkv/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ashlkv", + "id": 229588, + "login": "ashlkv", + "node_id": "MDQ6VXNlcjIyOTU4OA==", + "organizations_url": "https://api.github.com/users/ashlkv/orgs", + "received_events_url": "https://api.github.com/users/ashlkv/received_events", + "repos_url": "https://api.github.com/users/ashlkv/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ashlkv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ashlkv/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ashlkv", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/65916846?v=4", + "contributions": 3, + "events_url": "https://api.github.com/users/actions-user/events{/privacy}", + "followers_url": "https://api.github.com/users/actions-user/followers", + "following_url": "https://api.github.com/users/actions-user/following{/other_user}", + "gists_url": "https://api.github.com/users/actions-user/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/actions-user", + "id": 65916846, + "login": "actions-user", + "node_id": "MDQ6VXNlcjY1OTE2ODQ2", + "organizations_url": "https://api.github.com/users/actions-user/orgs", + "received_events_url": "https://api.github.com/users/actions-user/received_events", + "repos_url": "https://api.github.com/users/actions-user/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/actions-user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/actions-user/subscriptions", + "type": "User", + "url": "https://api.github.com/users/actions-user", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/33755274?v=4", + "contributions": 3, + "events_url": "https://api.github.com/users/toplenboren/events{/privacy}", + "followers_url": "https://api.github.com/users/toplenboren/followers", + "following_url": "https://api.github.com/users/toplenboren/following{/other_user}", + "gists_url": "https://api.github.com/users/toplenboren/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/toplenboren", + "id": 33755274, + "login": "toplenboren", + "node_id": "MDQ6VXNlcjMzNzU1Mjc0", + "organizations_url": "https://api.github.com/users/toplenboren/orgs", + "received_events_url": "https://api.github.com/users/toplenboren/received_events", + "repos_url": "https://api.github.com/users/toplenboren/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/toplenboren/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/toplenboren/subscriptions", + "type": "User", + "url": "https://api.github.com/users/toplenboren", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/131331?v=4", + "contributions": 3, + "events_url": "https://api.github.com/users/Konfuze/events{/privacy}", + "followers_url": "https://api.github.com/users/Konfuze/followers", + "following_url": "https://api.github.com/users/Konfuze/following{/other_user}", + "gists_url": "https://api.github.com/users/Konfuze/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Konfuze", + "id": 131331, + "login": "Konfuze", + "node_id": "MDQ6VXNlcjEzMTMzMQ==", + "organizations_url": "https://api.github.com/users/Konfuze/orgs", + "received_events_url": "https://api.github.com/users/Konfuze/received_events", + "repos_url": "https://api.github.com/users/Konfuze/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Konfuze/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Konfuze/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Konfuze", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/23308777?v=4", + "contributions": 2, + "events_url": "https://api.github.com/users/uuladzislau/events{/privacy}", + "followers_url": "https://api.github.com/users/uuladzislau/followers", + "following_url": "https://api.github.com/users/uuladzislau/following{/other_user}", + "gists_url": "https://api.github.com/users/uuladzislau/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/uuladzislau", + "id": 23308777, + "login": "uuladzislau", + "node_id": "MDQ6VXNlcjIzMzA4Nzc3", + "organizations_url": "https://api.github.com/users/uuladzislau/orgs", + "received_events_url": "https://api.github.com/users/uuladzislau/received_events", + "repos_url": "https://api.github.com/users/uuladzislau/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/uuladzislau/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/uuladzislau/subscriptions", + "type": "User", + "url": "https://api.github.com/users/uuladzislau", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/6684419?v=4", + "contributions": 2, + "events_url": "https://api.github.com/users/chafilin/events{/privacy}", + "followers_url": "https://api.github.com/users/chafilin/followers", + "following_url": "https://api.github.com/users/chafilin/following{/other_user}", + "gists_url": "https://api.github.com/users/chafilin/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/chafilin", + "id": 6684419, + "login": "chafilin", + "node_id": "MDQ6VXNlcjY2ODQ0MTk=", + "organizations_url": "https://api.github.com/users/chafilin/orgs", + "received_events_url": "https://api.github.com/users/chafilin/received_events", + "repos_url": "https://api.github.com/users/chafilin/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/chafilin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/chafilin/subscriptions", + "type": "User", + "url": "https://api.github.com/users/chafilin", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/73839778?v=4", + "contributions": 2, + "events_url": "https://api.github.com/users/Edward-Leopold/events{/privacy}", + "followers_url": "https://api.github.com/users/Edward-Leopold/followers", + "following_url": "https://api.github.com/users/Edward-Leopold/following{/other_user}", + "gists_url": "https://api.github.com/users/Edward-Leopold/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Edward-Leopold", + "id": 73839778, + "login": "Edward-Leopold", + "node_id": "MDQ6VXNlcjczODM5Nzc4", + "organizations_url": "https://api.github.com/users/Edward-Leopold/orgs", + "received_events_url": "https://api.github.com/users/Edward-Leopold/received_events", + "repos_url": "https://api.github.com/users/Edward-Leopold/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Edward-Leopold/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Edward-Leopold/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Edward-Leopold", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/124433850?v=4", + "contributions": 2, + "events_url": "https://api.github.com/users/AnnaGolmakova/events{/privacy}", + "followers_url": "https://api.github.com/users/AnnaGolmakova/followers", + "following_url": "https://api.github.com/users/AnnaGolmakova/following{/other_user}", + "gists_url": "https://api.github.com/users/AnnaGolmakova/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/AnnaGolmakova", + "id": 124433850, + "login": "AnnaGolmakova", + "node_id": "U_kgDOB2q1ug", + "organizations_url": "https://api.github.com/users/AnnaGolmakova/orgs", + "received_events_url": "https://api.github.com/users/AnnaGolmakova/received_events", + "repos_url": "https://api.github.com/users/AnnaGolmakova/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/AnnaGolmakova/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AnnaGolmakova/subscriptions", + "type": "User", + "url": "https://api.github.com/users/AnnaGolmakova", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/12436035?v=4", + "contributions": 2, + "events_url": "https://api.github.com/users/upteran/events{/privacy}", + "followers_url": "https://api.github.com/users/upteran/followers", + "following_url": "https://api.github.com/users/upteran/following{/other_user}", + "gists_url": "https://api.github.com/users/upteran/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/upteran", + "id": 12436035, + "login": "upteran", + "node_id": "MDQ6VXNlcjEyNDM2MDM1", + "organizations_url": "https://api.github.com/users/upteran/orgs", + "received_events_url": "https://api.github.com/users/upteran/received_events", + "repos_url": "https://api.github.com/users/upteran/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/upteran/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/upteran/subscriptions", + "type": "User", + "url": "https://api.github.com/users/upteran", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/47776594?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/baileys-li/events{/privacy}", + "followers_url": "https://api.github.com/users/baileys-li/followers", + "following_url": "https://api.github.com/users/baileys-li/following{/other_user}", + "gists_url": "https://api.github.com/users/baileys-li/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/baileys-li", + "id": 47776594, + "login": "baileys-li", + "node_id": "MDQ6VXNlcjQ3Nzc2NTk0", + "organizations_url": "https://api.github.com/users/baileys-li/orgs", + "received_events_url": "https://api.github.com/users/baileys-li/received_events", + "repos_url": "https://api.github.com/users/baileys-li/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/baileys-li/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/baileys-li/subscriptions", + "type": "User", + "url": "https://api.github.com/users/baileys-li", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/28816324?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/usmanyunusov/events{/privacy}", + "followers_url": "https://api.github.com/users/usmanyunusov/followers", + "following_url": "https://api.github.com/users/usmanyunusov/following{/other_user}", + "gists_url": "https://api.github.com/users/usmanyunusov/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/usmanyunusov", + "id": 28816324, + "login": "usmanyunusov", + "node_id": "MDQ6VXNlcjI4ODE2MzI0", + "organizations_url": "https://api.github.com/users/usmanyunusov/orgs", + "received_events_url": "https://api.github.com/users/usmanyunusov/received_events", + "repos_url": "https://api.github.com/users/usmanyunusov/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/usmanyunusov/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/usmanyunusov/subscriptions", + "type": "User", + "url": "https://api.github.com/users/usmanyunusov", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/52201?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/kossnocorp/events{/privacy}", + "followers_url": "https://api.github.com/users/kossnocorp/followers", + "following_url": "https://api.github.com/users/kossnocorp/following{/other_user}", + "gists_url": "https://api.github.com/users/kossnocorp/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/kossnocorp", + "id": 52201, + "login": "kossnocorp", + "node_id": "MDQ6VXNlcjUyMjAx", + "organizations_url": "https://api.github.com/users/kossnocorp/orgs", + "received_events_url": "https://api.github.com/users/kossnocorp/received_events", + "repos_url": "https://api.github.com/users/kossnocorp/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/kossnocorp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/kossnocorp/subscriptions", + "type": "User", + "url": "https://api.github.com/users/kossnocorp", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/40913082?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/Kamino0/events{/privacy}", + "followers_url": "https://api.github.com/users/Kamino0/followers", + "following_url": "https://api.github.com/users/Kamino0/following{/other_user}", + "gists_url": "https://api.github.com/users/Kamino0/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Kamino0", + "id": 40913082, + "login": "Kamino0", + "node_id": "MDQ6VXNlcjQwOTEzMDgy", + "organizations_url": "https://api.github.com/users/Kamino0/orgs", + "received_events_url": "https://api.github.com/users/Kamino0/received_events", + "repos_url": "https://api.github.com/users/Kamino0/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Kamino0/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Kamino0/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Kamino0", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/78731462?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/ninaTorgunakova/events{/privacy}", + "followers_url": "https://api.github.com/users/ninaTorgunakova/followers", + "following_url": "https://api.github.com/users/ninaTorgunakova/following{/other_user}", + "gists_url": "https://api.github.com/users/ninaTorgunakova/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ninaTorgunakova", + "id": 78731462, + "login": "ninaTorgunakova", + "node_id": "MDQ6VXNlcjc4NzMxNDYy", + "organizations_url": "https://api.github.com/users/ninaTorgunakova/orgs", + "received_events_url": "https://api.github.com/users/ninaTorgunakova/received_events", + "repos_url": "https://api.github.com/users/ninaTorgunakova/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ninaTorgunakova/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ninaTorgunakova/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ninaTorgunakova", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/6926262?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/nick318/events{/privacy}", + "followers_url": "https://api.github.com/users/nick318/followers", + "following_url": "https://api.github.com/users/nick318/following{/other_user}", + "gists_url": "https://api.github.com/users/nick318/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/nick318", + "id": 6926262, + "login": "nick318", + "node_id": "MDQ6VXNlcjY5MjYyNjI=", + "organizations_url": "https://api.github.com/users/nick318/orgs", + "received_events_url": "https://api.github.com/users/nick318/received_events", + "repos_url": "https://api.github.com/users/nick318/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/nick318/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nick318/subscriptions", + "type": "User", + "url": "https://api.github.com/users/nick318", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/62427559?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/tainkrios/events{/privacy}", + "followers_url": "https://api.github.com/users/tainkrios/followers", + "following_url": "https://api.github.com/users/tainkrios/following{/other_user}", + "gists_url": "https://api.github.com/users/tainkrios/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/tainkrios", + "id": 62427559, + "login": "tainkrios", + "node_id": "MDQ6VXNlcjYyNDI3NTU5", + "organizations_url": "https://api.github.com/users/tainkrios/orgs", + "received_events_url": "https://api.github.com/users/tainkrios/received_events", + "repos_url": "https://api.github.com/users/tainkrios/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/tainkrios/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tainkrios/subscriptions", + "type": "User", + "url": "https://api.github.com/users/tainkrios", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/193210?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/easing/events{/privacy}", + "followers_url": "https://api.github.com/users/easing/followers", + "following_url": "https://api.github.com/users/easing/following{/other_user}", + "gists_url": "https://api.github.com/users/easing/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/easing", + "id": 193210, + "login": "easing", + "node_id": "MDQ6VXNlcjE5MzIxMA==", + "organizations_url": "https://api.github.com/users/easing/orgs", + "received_events_url": "https://api.github.com/users/easing/received_events", + "repos_url": "https://api.github.com/users/easing/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/easing/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/easing/subscriptions", + "type": "User", + "url": "https://api.github.com/users/easing", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/167279?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/GreenTeaCake/events{/privacy}", + "followers_url": "https://api.github.com/users/GreenTeaCake/followers", + "following_url": "https://api.github.com/users/GreenTeaCake/following{/other_user}", + "gists_url": "https://api.github.com/users/GreenTeaCake/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/GreenTeaCake", + "id": 167279, + "login": "GreenTeaCake", + "node_id": "MDQ6VXNlcjE2NzI3OQ==", + "organizations_url": "https://api.github.com/users/GreenTeaCake/orgs", + "received_events_url": "https://api.github.com/users/GreenTeaCake/received_events", + "repos_url": "https://api.github.com/users/GreenTeaCake/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/GreenTeaCake/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/GreenTeaCake/subscriptions", + "type": "User", + "url": "https://api.github.com/users/GreenTeaCake", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/63065?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/devgru/events{/privacy}", + "followers_url": "https://api.github.com/users/devgru/followers", + "following_url": "https://api.github.com/users/devgru/following{/other_user}", + "gists_url": "https://api.github.com/users/devgru/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/devgru", + "id": 63065, + "login": "devgru", + "node_id": "MDQ6VXNlcjYzMDY1", + "organizations_url": "https://api.github.com/users/devgru/orgs", + "received_events_url": "https://api.github.com/users/devgru/received_events", + "repos_url": "https://api.github.com/users/devgru/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/devgru/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/devgru/subscriptions", + "type": "User", + "url": "https://api.github.com/users/devgru", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/254647?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/alsuren/events{/privacy}", + "followers_url": "https://api.github.com/users/alsuren/followers", + "following_url": "https://api.github.com/users/alsuren/following{/other_user}", + "gists_url": "https://api.github.com/users/alsuren/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/alsuren", + "id": 254647, + "login": "alsuren", + "node_id": "MDQ6VXNlcjI1NDY0Nw==", + "organizations_url": "https://api.github.com/users/alsuren/orgs", + "received_events_url": "https://api.github.com/users/alsuren/received_events", + "repos_url": "https://api.github.com/users/alsuren/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/alsuren/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alsuren/subscriptions", + "type": "User", + "url": "https://api.github.com/users/alsuren", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/36270?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/Guria/events{/privacy}", + "followers_url": "https://api.github.com/users/Guria/followers", + "following_url": "https://api.github.com/users/Guria/following{/other_user}", + "gists_url": "https://api.github.com/users/Guria/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Guria", + "id": 36270, + "login": "Guria", + "node_id": "MDQ6VXNlcjM2Mjcw", + "organizations_url": "https://api.github.com/users/Guria/orgs", + "received_events_url": "https://api.github.com/users/Guria/received_events", + "repos_url": "https://api.github.com/users/Guria/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Guria/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Guria/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Guria", + "user_view_type": "public" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/10295457?v=4", + "contributions": 1, + "events_url": "https://api.github.com/users/privorotskii/events{/privacy}", + "followers_url": "https://api.github.com/users/privorotskii/followers", + "following_url": "https://api.github.com/users/privorotskii/following{/other_user}", + "gists_url": "https://api.github.com/users/privorotskii/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/privorotskii", + "id": 10295457, + "login": "privorotskii", + "node_id": "MDQ6VXNlcjEwMjk1NDU3", + "organizations_url": "https://api.github.com/users/privorotskii/orgs", + "received_events_url": "https://api.github.com/users/privorotskii/received_events", + "repos_url": "https://api.github.com/users/privorotskii/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/privorotskii/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/privorotskii/subscriptions", + "type": "User", + "url": "https://api.github.com/users/privorotskii", + "user_view_type": "public" + } +] diff --git a/web/pages/about.svelte b/web/pages/about.svelte index 9e488db1..162043a9 100644 --- a/web/pages/about.svelte +++ b/web/pages/about.svelte @@ -1,9 +1,17 @@ - Slow Reader + {$t.slowReader} @@ -43,5 +66,250 @@ > {$t.reportIssue} + + +{#if $showCredits} + +{/if} + + diff --git a/web/public/h+h-logo.png b/web/public/h+h-logo.png new file mode 100644 index 00000000..255684d8 Binary files /dev/null and b/web/public/h+h-logo.png differ