├── info ├── About │ ├── _tos.md │ ├── _privacy.md │ ├── _terms.md │ ├── _privacy-policy.md │ ├── _terms-of-service.md │ ├── abuse.md │ ├── services.md │ ├── code-of-conduct.md │ ├── about.md │ └── service-domains.md ├── Community │ ├── _slack.md │ ├── mastodon.md │ ├── community-tools.md │ ├── social.lol.md │ ├── irc-clients.md │ └── irc.md ├── Email │ ├── _fastmail-setup.md │ ├── email-forwarding.md │ ├── postmasters.md │ ├── email.md │ ├── sending-email.md │ ├── fastmail.md │ └── mailhooks.md ├── Feedback & Help │ ├── _help.md │ ├── _security.md │ ├── _security.txt │ ├── _vulnerabilities.md │ ├── feedback.md │ ├── bugs.md │ ├── faq.md │ ├── thanks.md │ └── contact.md ├── Profile & Web │ ├── _web-basics.md │ ├── profile-themes.md │ ├── tildeverse.md │ ├── profile-verification.md │ ├── classic-editor.md │ ├── profiles.md │ ├── web.md │ ├── advanced-editor.md │ └── profile-items.md ├── Address Services │ ├── _purl-guide.md │ ├── api.md │ ├── weblog.md │ ├── keys.md │ ├── url.lol.md │ ├── pastebin.md │ ├── statuslog.md │ ├── purls.md │ ├── dns.md │ ├── proofs.md │ └── switchboard.md ├── Account │ ├── _2fa.md │ ├── passwords.md │ ├── account-settings.md │ ├── passkeys.md │ ├── two-factor-authentication.md │ └── dashboard.md ├── README.md ├── Addresses │ ├── address-requirements.md │ ├── lifetime-addresses.md │ ├── keybase.md │ ├── addresses.md │ ├── disambiguation.md │ └── emoji-addresses.md └── Billing │ ├── gift-codes.md │ ├── pricing.md │ ├── billing.md │ ├── renewals.md │ └── payments.md ├── profiles ├── themes │ ├── naked.css │ ├── latte │ │ ├── latte.json │ │ └── latte.css │ ├── the-good-earth │ │ ├── theme.json │ │ └── theme.css │ ├── README.md │ ├── dark.css │ ├── hotdog-stand.css │ ├── toasted-minimal.css │ ├── toastminimal.css │ ├── cherry-blossom.css │ ├── nothing-but-red.css │ ├── deep-red.css │ ├── catpuccin-macchiato.css │ ├── gilded.css │ ├── PurpleGray.css │ ├── hacker.css │ ├── sun-kissed.css │ ├── nord-dark.css │ ├── monokai.css │ ├── minimal.css │ ├── gradient.css │ ├── dracula.css │ ├── omglol-special.css │ ├── emerald-isle.css │ ├── base.css │ └── themes.json └── icons │ ├── defined_overrides.txt │ ├── omg.lol-icons.woff2 │ ├── omg.lol-icons.css │ ├── defined_omgicons.txt │ ├── README.md │ ├── omg.lol-glyphs.css │ ├── defined_domains.txt │ ├── domains.json │ ├── prepare.php │ └── omg.lol-icons.html ├── .github ├── CODEOWNERS ├── FUNDING.yml ├── labeler.yml ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── bugs.yml │ └── icons.yml └── workflows │ ├── label_pr.yml │ └── icons.yml ├── api ├── README.md └── docs │ ├── Directory.postman_collection.json │ ├── Service.postman_collection.json │ ├── Preferences.postman_collection.json │ ├── OAuth.postman_collection.json │ └── Web.postman_collection.json ├── SECURITY.md ├── README.md ├── LICENSE.md ├── CODE_OF_CONDUCT.md └── tests └── routing-regression-testing.md /info/About/_tos.md: -------------------------------------------------------------------------------- 1 | legal -------------------------------------------------------------------------------- /info/About/_privacy.md: -------------------------------------------------------------------------------- 1 | legal -------------------------------------------------------------------------------- /info/About/_terms.md: -------------------------------------------------------------------------------- 1 | legal -------------------------------------------------------------------------------- /info/Community/_slack.md: -------------------------------------------------------------------------------- 1 | irc -------------------------------------------------------------------------------- /profiles/themes/naked.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /info/About/_privacy-policy.md: -------------------------------------------------------------------------------- 1 | legal -------------------------------------------------------------------------------- /info/About/_terms-of-service.md: -------------------------------------------------------------------------------- 1 | legal -------------------------------------------------------------------------------- /info/Email/_fastmail-setup.md: -------------------------------------------------------------------------------- 1 | fastmail -------------------------------------------------------------------------------- /info/Feedback & Help/_help.md: -------------------------------------------------------------------------------- 1 | contact -------------------------------------------------------------------------------- /info/Feedback & Help/_security.md: -------------------------------------------------------------------------------- 1 | bugs -------------------------------------------------------------------------------- /info/Feedback & Help/_security.txt: -------------------------------------------------------------------------------- 1 | bugs -------------------------------------------------------------------------------- /info/Profile & Web/_web-basics.md: -------------------------------------------------------------------------------- 1 | web -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @newbold 2 | -------------------------------------------------------------------------------- /info/Address Services/_purl-guide.md: -------------------------------------------------------------------------------- 1 | purls -------------------------------------------------------------------------------- /info/Account/_2fa.md: -------------------------------------------------------------------------------- 1 | two-factor-authentication -------------------------------------------------------------------------------- /info/Feedback & Help/_vulnerabilities.md: -------------------------------------------------------------------------------- 1 | bugs -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://home.omg.lol/sign-up 2 | -------------------------------------------------------------------------------- /profiles/icons/defined_overrides.txt: -------------------------------------------------------------------------------- 1 | podcast fa-solid fa-microphone -------------------------------------------------------------------------------- /profiles/icons/omg.lol-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fm/omg.lol/main/profiles/icons/omg.lol-icons.woff2 -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- 1 | documentation: 2 | - any: ['info/**/*.md', '!info/README.md'] 3 | web/profiles: 4 | - any: ['profiles/themes/*.css', 'profiles/icons/*'] 5 | -------------------------------------------------------------------------------- /info/README.md: -------------------------------------------------------------------------------- 1 | # omg.lol/info 2 | 3 | You can find all kinds of information about omg.lol in our [Info Center](https://home.omg.lol/info). 4 | 5 | This is the omg.lol Info Center’s source, consisting of all omg.lol help articles in Markdown format. 6 | -------------------------------------------------------------------------------- /api/README.md: -------------------------------------------------------------------------------- 1 | # The omg.lol API 2 | 3 | The `/docs` folder contains the omg.lol API endpoint documentation in Postman Collection 2.1 format. For friendlier, human-readable documentation please visit https://api.omg.lol. 4 | 5 | The `/examples` folder will have some examples, eventually. -------------------------------------------------------------------------------- /profiles/themes/latte/latte.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Latte", 3 | "author": "[Catnatsuki](https://profile.omg.lol/catnatsuki)", 4 | "canonical": "https:\/\/", 5 | "license": "MIT", 6 | "description": "Inspired by the latte I was drinking when I made it.", 7 | "version": "1.0" 8 | } -------------------------------------------------------------------------------- /profiles/themes/the-good-earth/theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Good Earth", 3 | "author": "[omg.lol](https:\/\/omg.lol)", 4 | "canonical": "https:\/\/", 5 | "license": "MIT", 6 | "description": "Muted earth tones bring out the natural beauty of your profile page.", 7 | "version": "1.0" 8 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Major Bug Report 4 | url: https://home.omg.lol/info/bugs 5 | about: Report critical/major bugs or vulnerabilities 6 | - name: Feedback and suggestions 7 | url: https://github.com/neatnik/omg.lol/discussions/categories/ideas 8 | about: Share ideas for omg.lol or feedback on the service -------------------------------------------------------------------------------- /.github/workflows/label_pr.yml: -------------------------------------------------------------------------------- 1 | name: Label PRs 2 | 3 | on: 4 | pull_request_target: 5 | types: [opened, reopened] 6 | 7 | jobs: 8 | triage: 9 | permissions: 10 | contents: read 11 | pull-requests: write 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/labeler@v4 15 | with: 16 | repo-token: "${{ secrets.GITHUB_TOKEN }}" 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bugs.yml: -------------------------------------------------------------------------------- 1 | name: Bugs (non-major) 2 | description: Report any problems or pesky bugs 3 | title: "[Bug] " 4 | labels: [bug] 5 | body: 6 | - type: textarea 7 | attributes: 8 | label: Bug Description 9 | validations: 10 | required: true 11 | - type: textarea 12 | attributes: 13 | label: Steps to Reproduce 14 | validations: 15 | required: false 16 | -------------------------------------------------------------------------------- /profiles/themes/README.md: -------------------------------------------------------------------------------- 1 | # OMG.LOL Themes 2 | 3 | This is a repository of themes for OMG.LOL profile pages. They’re just CSS files! Simple stuff. 4 | 5 | ## Contributing 6 | 7 | If you’d like to submit your own theme for inclusion in the theme list, you can submit it here with a pull request. 8 | 9 | More information about themes can be found in [this article](https://meta.omg.lol/help/profile-themes). -------------------------------------------------------------------------------- /info/Account/passwords.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: All about passwords, whoo hoo 3 | Last Updated: 2022-10-08 01:52 AM EDT 4 | --- 5 | 6 | # Passwords 7 | 8 | You don’t have to have a password to sign into omg.lol. Without a password, you can simply sign in via email. When you sign in we’ll email a unique link that will authenticate your session. 9 | 10 | You can set, remove, or change your password any time on your [account](/account/) page. 11 | -------------------------------------------------------------------------------- /info/Address Services/api.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: Everything you could possibly want to know about our awesome API 3 | Last Updated: 2022-10-08 01:52 AM EDT 4 | --- 5 | 6 | # API 7 | 8 | We’re developing an awesome API for omg.lol, with the goal of enabling programatic access to every single aspect of the service. We’re not there yet, but we’re working on it! 9 | 10 | For more information about the API, visit [api.omg.lol](https://api.omg.lol). 11 | -------------------------------------------------------------------------------- /info/Address Services/weblog.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: We’re building a weblog, hip-hip-hooray 3 | Last Updated: 2022-11-13 7:19 PM EST 4 | --- 5 | 6 | # Weblog 7 | 8 |
European customers can also pay with Bancontact, iDEAL, Przelewy24, giropay, EPS, SEPA, and Sofort. Additional payment methods may be available in other locations. Affirm, Afterpay, Klarna, and other “buy now, pay later” services may also be available depending on the amount of your purchase and other conditions.
27 | 28 | ## Payment processing 29 | 30 | We use Stripe to securely process your online payment. They’re the best. 31 | 32 | ## Currencies 33 | 34 | Stripe is rolling out a new automatic currency conversion program and are adding new currencies all the time. As of now, in addition to USD, payments can be made in EUR, GBP, and CAD. On October 20, 2022, payments can also be made in AUD, MXN, JPY and SGD. 35 | 36 | ## Alternative payment methods 37 | 38 | We prefer to keep things simple and use the payment methods listed above. If you would like to discuss any special circumstances related to payments, you can [contact us](/info/contact) at any time. -------------------------------------------------------------------------------- /profiles/themes/gradient.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2021 Trevor Thalacker. All rights reserved. 3 | 4 | Theme: Gradient 5 | Author: Trevor Thalacker (@trevorthalacker) 6 | License: MIT 7 | Version: 1.0 8 | Description: A nice theme with an animated, gradient background 9 | */ 10 | 11 | :root { 12 | --box-shadow: 0 0 transparent, 0 0 transparent, 13 | 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); 14 | } 15 | 16 | body { 17 | background: linear-gradient( 18 | 313deg, 19 | #fecaca, 20 | #fde68a, 21 | #a7f3d0, 22 | #bfdbfe, 23 | #c7d2fe, 24 | #ddd6fe, 25 | #fbcfe8 26 | ); 27 | background-size: 1400% 1400%; 28 | 29 | -webkit-animation: colours 15s ease infinite; 30 | -moz-animation: colours 15s ease infinite; 31 | -o-animation: colours 15s ease infinite; 32 | animation: colours 15s ease infinite; 33 | } 34 | 35 | main { 36 | box-shadow: var(--box-shadow); 37 | } 38 | 39 | #pfp_preview { 40 | border-radius: 100% !important; 41 | box-shadow: var(--box-shadow); 42 | } 43 | 44 | #footer { 45 | margin-top: 1em; 46 | } 47 | 48 | /* Keyframe Stuff */ 49 | @-webkit-keyframes colours { 50 | 0% { 51 | background-position: 0% 50%; 52 | } 53 | 50% { 54 | background-position: 100% 50%; 55 | } 56 | 100% { 57 | background-position: 0% 50%; 58 | } 59 | } 60 | @-moz-keyframes colours { 61 | 0% { 62 | background-position: 0% 50%; 63 | } 64 | 50% { 65 | background-position: 100% 50%; 66 | } 67 | 100% { 68 | background-position: 0% 50%; 69 | } 70 | } 71 | @-o-keyframes colours { 72 | 0% { 73 | background-position: 0% 50%; 74 | } 75 | 50% { 76 | background-position: 100% 50%; 77 | } 78 | 100% { 79 | background-position: 0% 50%; 80 | } 81 | } 82 | @keyframes colours { 83 | 0% { 84 | background-position: 0% 50%; 85 | } 86 | 50% { 87 | background-position: 100% 50%; 88 | } 89 | 100% { 90 | background-position: 0% 50%; 91 | } 92 | } -------------------------------------------------------------------------------- /info/About/service-domains.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: Refer to this official list of service domains to ensure that you’re dealing with legit omg.lol stuff 3 | Last Updated: 2022-11-20 7:22 PM EST 4 | --- 5 | 6 | # Service Domains 7 | 8 | Here’s a list of all valid omg.lol service domains. 9 | 10 | - [omg.lol](https://omg.lol) is an eTLD registered on the Public Suffix List. The base address redirects to [home.omg.lol](https://home.omg.lol), while other subdomains redirect to either service pages (which would be listed below) or member addresses. 11 | - [home.omg.lol](https://home.omg.lol) is our canonical service domain, and the only domain used for account activity (registration, sign-in, account maintenance, etc.). There are no member-run services operating within this domain. 12 | - [status.omg.lol](https://status.omg.lol) is our service status page. 13 | - [social.lol](https://social.lol) is our Mastodon instance. 14 | - [irc.social.lol](https://social.lol) is our IRC server. 15 | - [paste.lol](https://paste.lol) is our Pastebin service. 16 | - [status.lol](https://status.lol) is our Statuslog service. 17 | - [url.lol](https://url.lol) is our PURL service. 18 | - [weblog.lol](https://weblog.lol) is our Weblog service. 19 | - [staff.lol](https://staff.lol) redirects to our [Staff page](https://home.omg.lol/staff). 20 | 21 | If you have found a location other than the ones above claiming to be affiliated with omg.lol, or if someone has asked you to log into omg.lol or share any personal information at a location other than home.omg.lol, please [email abuse@omg.lol](mailto:abuse@omg.lol) immediately. 22 | 23 | ## Why does this list exist? 24 | 25 | This list exists to help you ensure that you’re only dealing with official, legitimate omg.lol services. (In other words, if someone came along and registered “omg-support-scam.omg.lol” and suggested that you enter your credentials there, this page would confirm that would be a bad idea.) -------------------------------------------------------------------------------- /profiles/themes/dracula.css: -------------------------------------------------------------------------------- 1 | /* 2 | The original theme is under the MIT license. 3 | MIT LICENSE (c) Dracula Theme, adapted by Bye for omg.lol 4 | 5 | Theme: Dracula 6 | Author: Bye (@_byemc) 7 | License: MIT (https://bye.url.lol/draculalicense) 8 | Version: 1.0 9 | Description: Dark theme with a touch of purple. Adapted from the Dracula color scheme by @zenorocha 10 | */ 11 | 12 | @import url('https://omg.cache.lol/css/type.css'); 13 | 14 | :root { 15 | --background-color: #282a36; 16 | --main-color: #44475a; 17 | --forground: #f8f8f2; 18 | --comment: #6272a4; 19 | --cyan: #8be9fd; 20 | --green: #50fa7b; 21 | --orange: #ffb86c; 22 | --pink: #ff79c6; 23 | --purple: #bd93f9; 24 | --red: #ff5555; 25 | --yellow: #f1fa8c; 26 | } 27 | 28 | ::selection { 29 | background: var(--purple); 30 | color: var(--forground); 31 | } 32 | 33 | body { 34 | background: var(--background-color); 35 | color: var(--forground); 36 | } 37 | 38 | main { 39 | background: var(--main-color); 40 | } 41 | 42 | #profile-picture-container { 43 | color: var(--main-color); 44 | } 45 | 46 | 47 | #pronouns { 48 | color: var(--purple); 49 | } 50 | 51 | #pronouns a:link, 52 | #pronouns a:visited, 53 | #pronouns a:hover, 54 | #pronouns a:active { 55 | color: var(--comment); 56 | } 57 | 58 | #footer { 59 | color: var(--comment); 60 | } 61 | 62 | #footer a:link, 63 | #footer a:visited, 64 | #footer a:hover, 65 | #footer a:active { 66 | color: var(--comment); 67 | } 68 | 69 | a:link, 70 | a:visited { 71 | color: var(--forground); 72 | text-decoration-color: var(--forground); 73 | text-decoration: none; 74 | border-bottom: 1px dotted var(--comment); 75 | } 76 | a:hover, 77 | a:active { 78 | color: var(--forground); 79 | text-decoration-color: var(--forground); 80 | text-decoration: none; 81 | border-bottom: 2px solid var(--comment); 82 | } 83 | @media (prefers-color-scheme: dark) { 84 | .omg-icon.rainbow-me svg { 85 | fill: var(--forground); 86 | } 87 | } 88 | 89 | h1#name a i.fa-badge-check, .omg-verified { 90 | color: var(--purple) !important; 91 | } 92 | -------------------------------------------------------------------------------- /info/Address Services/pastebin.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: All about paste.lol, omg.lol’s awesome pastebin 3 | Last Updated: 2022-10-08 01:52 AM EDT 4 | --- 5 | 6 | # Pastebin 7 | 8 | The internet didn’t ask for another pastebin, and it certainly didn’t _need_ one, but here we are. As is customary around here, we found a cool domain (`paste.lol` in this case) and decided to put it to good use. 9 | 10 | Each omg.lol address has its own independently-managed pastebin, accessible at `yourname.paste.lol` and fully managed within omg.lol. 11 | 12 | ## Paste privacy 13 | 14 | All paste pages are **public**. Anyone who has the URL to one of your pastes will be able to see it. Don’t store anything that you wouldn’t want your mother, neighbor, ex-spouse, or boss to see. 15 | 16 | ## Managing pastes 17 | 18 | To create a new paste (an entry in your pastebin), just visit your **Dashboard**, click **Manage** under your address, and then click **Manage Pastebin**. From there you can easily add a new paste or edit existing ones. 19 | 20 | Every paste needs a title. Titles can consist of alphanumeric characters, dashes, underscores, and dots. If your paste title ends in a file extension, its public page will display the paste content with appropriate syntax highlighting, if possible. 21 | 22 | Pastes can be “listed” or “unlisted”. “Listed” pastes will appear on your paste directory (accessible at `yourname.paste.lol`). Pastes are unlisted by default. 23 | 24 | ## Accessing pastes 25 | 26 | You can access any of your pastes by visiting your pastebin URL (`yourname.paste.lol`) and slapping the paste title at the end (e.g. `yourname.paste.lol/my-paste`). 27 | 28 | You can also visit `paste.lol/yourname/my-paste` if you prefer. It works the same way. 29 | 30 | If you want to access a paste in plain text format, just append `/raw` to the end of its URL. 31 | 32 | To view a list of listed pastes for any given address’s pastebin, just visit `youraddress.paste.lol`. 33 | 34 | ## Reporting abuse 35 | 36 | In the extremely unlikely event that you’ve encountered an abusive paste (e.g. doxxing, hate speech, etc.) please report it by emailing [abuse@omg.lol](mailto:abuse@omg.lol). 37 | -------------------------------------------------------------------------------- /info/Account/two-factor-authentication.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: Two-factor authentication (2FA) is a great way to secure your account 3 | Last Updated: 2022-10-08 01:52 AM EDT 4 | --- 5 | 6 | # Two-factor authentication 7 | 8 | Two-factor authentication, or 2FA for short, is a great way to secure your account. We encourage everyone to enable it, not just at omg.lol but everywhere. 9 | 10 | ## What is it? 11 | 12 | Traditional authentication relies on just one factor, like a password. If your password is compromised, there isn’t much standing between an attacker and your private information. By introducing a second factor into the authentication process, account security is increased substantially. 13 | 14 | The ideal 2FA setup involves something you _know_ (like a password), and something you _have_ (like a key, token, or one-time use code). 15 | 16 | ## How does it work? 17 | 18 | We use one-time password (OTP) codes for 2FA at omg.lol. Specifically, TOTP (or time-based one-time passwords). These are codes generated by an authenticator app that have a limited life span, which adds to the security. Even if an attacker somehow obtained your password and an OTP code, they’d have a limited amount of time to use the code before it expired. 19 | 20 | To get started, you’ll need an authenticator app. There are plenty out there for all platforms. (We recommend using the one that’s built into 1Password, our favorite password manager.) 21 | 22 | Then, in the _Two-factor authentication_ section of the [account setings](/account/settings#two-factor-authentication) screen: 23 | 24 | 1. Scan the QR code with your authenticator app. (If you can’t scan it for some reason, you can use the code instead.) 25 | 2. When your authenticator app provides a six digit code, enter it in the provided field on the account settings screen and then click the button. 26 | 3. Store the provided backup codes safely; you’ll need them in the event that you lose access to your authenticator. 27 | 28 | From this point forward 2FA will be enabled, providing the highest level of security for your account. You’ll provide a unique code from your authenticator app with each sign-in, and you’ll sleep well at night knowing that your account is super secure! 29 | -------------------------------------------------------------------------------- /profiles/themes/omglol-special.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Theme: omg.lol Special 4 | Author: Ediz Baha (@edizbaha) 5 | License: MIT 6 | Version: 1.0 7 | Description: omg.lol Special - This theme is inspired by the design of the omg.lol. 8 | 9 | */ 10 | 11 | @import url('https://omg.cache.lol/type/font-honey.css'); 12 | @import url('https://omg.cache.lol/type/font-lato-regular.css'); 13 | 14 | :root { 15 | --verified: #f783ac !important; 16 | } 17 | 18 | 19 | * { 20 | font-family: 'Lato', sans-serif; 21 | } 22 | 23 | h1 { 24 | font-family: 'VC Honey Deck', sans-serif; 25 | } 26 | 27 | body { 28 | background: #343A40; 29 | color: #F1F3F5; 30 | } 31 | 32 | main { 33 | background: unset; 34 | } 35 | 36 | a:link, 37 | a:visited { 38 | color: #F1F3F5; 39 | text-decoration-color: #F1F3F5; 40 | text-decoration: none; 41 | border-bottom: 1px dotted #F1F3F5; 42 | } 43 | 44 | a:hover, 45 | a:active { 46 | color: #A5A5A5; 47 | text-decoration-color: #A5A5A5; 48 | text-decoration: none; 49 | border-bottom: 2px solid #A5A5A5; 50 | } 51 | 52 | #profile-picture { 53 | border-radius: 15%; 54 | box-shadow: 0px 8px 0px rgb(0 0 0 / 15%); 55 | } 56 | 57 | #pronouns { 58 | color: #A5A5A5; 59 | } 60 | 61 | #footer a:link, #footer a:visited, #footer a:hover, #footer a:active { 62 | color: #A5A5A5; 63 | } 64 | 65 | /* Color for profile items list */ 66 | .fa-li, .fas, .omg-icon, .omg-icon path { 67 | color: #F783AC; 68 | fill: #F783AC; 69 | stroke: #FA638D; 70 | } 71 | 72 | /* Specific colors for individual icons */ 73 | .fa-plug { 74 | color: #FFE066; 75 | } 76 | 77 | .fa-badge-check { 78 | color: #74C0FC !important; /* important is needed to override inline style*/ 79 | } 80 | 81 | .omg-verified { 82 | color: #74C0FC !important; /* important is needed to override inline style*/ 83 | } 84 | 85 | .fa-briefcase { 86 | color: #FFE066; 87 | } 88 | 89 | .fa-map-marker-alt { 90 | color: #FFE066; 91 | } 92 | 93 | .fa-location-dot { 94 | color: #FFE066; 95 | } 96 | 97 | /* Additional theming for OMGEX (https://github.com/litdevs/omgex) */ 98 | 99 | .fa-clock { 100 | color: #FFE066; 101 | } 102 | 103 | .fa-smile-plus { 104 | color: #FFE066; 105 | } 106 | 107 | .fa-birthday-cake { 108 | color: #FFE066; 109 | } -------------------------------------------------------------------------------- /info/Email/email.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: All about email at omg.lol 3 | Last Updated: 2022-11-02 7:14 PM EDT 4 | --- 5 | 6 | # Email Guide 7 | 8 | Your omg.lol address comes with email forwarding. You can easily forward your emails sent to your address (e.g. `foobar@omg.lol`) to wherever you’d like, or take advantage of some more advanced email features if that’s your thing. 9 | 10 | ## Forwarding 11 | 12 | To forward your emails, just pull up your address, click **Email**, and enter the destination address in the Forwarding field. You can enter as many addresses as you’d like (just separate them with a comma), and your inbound emails will be forwarded simultaneously to those destination addresses. 13 | 14 | ## Mail Log 15 | 16 | You can view a helpful logfile of your recent email activity on your address’s Email screen. This will help you understand the email that’s been sent to your address and what happened to it once our mail server received it. The logs are limited and privacy-protecting (you can see where the message was coming from, but not much else). 17 | 18 | ## Address Delimiters 19 | 20 | Some of the fancier email services out there let you use a `+` plus sign to extend your address, e.g. `foobar+thing@example.com`. That works with omg.lol as well, of course. But we’ve gone the extra mile and have opened up the range of characters that you can use to ``'*+/=?^_`{|}~.``, which means that addresses like `foobar/beep@omg.lol` and `foobar=bazbat@omg.lol` are perfectly valid. Have fun with those. (Note that messages sent to addresses extended with delimeters will not appear in your mail log due to the way the logs are parsed.) 21 | 22 | ## Sending 23 | 24 | Aside from our [Fastmail](/info/fastmail) integration, we don’t support sending emails directly from your omg.lol address (yourname@omg.lol), as it’s intended to be used for forwarding only. But! You’re always in full control over your omg.lol domain name (yourname.omg.lol), so you’re welcome to configure that for use with any email service. Check out our guide on [Sending Email](/info/sending-email) for details on how to set that up. 25 | 26 | ## Mailhooks 27 | 28 | We’re building an entirely new kind of programmable email service. When ready, you’ll be able to turn over your inbound email to our [Mailhooks](/info/mailhooks) feature, enabling powerful automated processing of emails and other fun stuff. -------------------------------------------------------------------------------- /info/Address Services/statuslog.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: status.lol, our Statuslog service 3 | Last Updated: 2022-10-09 01:07 AM EDT 4 | --- 5 | 6 | # Statuslog 7 | 8 | We run a “statuslog” for omg.lol members at [status.lol](https://status.lol). It’s fun! 9 | 10 | ## What’s a statuslog? 11 | 12 | It’s like a weblog, but it’s designed for short status updates. Use it to share what’s happening at the moment: what you’re reading or watching, who you’re hanging out with, what you’re munching on, or maybe how you’re feeling. That kind of thing. 13 | 14 | ## Embedding your status elsewhere 15 | 16 | You can embed your status anywhere you’d like with a tiny bit of Javascript. To display a plain, unstyled version of your status by itself, just add this script to any web page: 17 | 18 | `` 19 | 20 | For example, if your address was `foo`, you’d use this: 21 | 22 | `` 23 | 24 | You can also include some parameters that will control what and how things are displayed: 25 | 26 | - `time` will include the relative time of when the status was posted (e.g. 2 days ago) 27 | - `link` will turn the time into a hyperlink back to the status page on status.lol 28 | - `fluent` will include the Fluent emoji 29 | - `pretty` will style the status pretty closely to what’s shown on status.lol 30 | - `no-emoji`will show no emoji in your status output 31 | 32 | So, if you’re looking for something that looks nice, you probably want to use this: 33 | 34 | `` 35 | 36 | ## Emoji 37 | 38 | The amazing emoji used on [status.lol](https://status.lol) are from the [Fluent Emoji](https://github.com/microsoft/fluentui-emoji) project. 39 | 40 | ## Webhook 41 | 42 | You can configure an outgoing webhook with your Statuslog (just plop the webhook URL into the field in the Statuslog preference panel). With an active webhook, this data will be POSTed to the webhook URL whenever you make a new Statuslog entry: 43 | 44 | ``` 45 | { 46 | "status_emoji": "\ud83e\ude9d", 47 | "status_text": "Webhooks for the Statuslog? Why not! https:\/\/home.omg.lol\/info\/statuslog", 48 | "posted": 1669044815 49 | } 50 | ``` 51 | 52 | Where `status_emoji` is the emoji used, `status_text` is the statuslog entry text, and `posted` is the UNIX epoch timestamp. -------------------------------------------------------------------------------- /info/Address Services/purls.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: Learn all about PURLs, also known as persistent uniform resource locators 3 | Last Updated: 2022-10-08 01:52 AM EDT 4 | --- 5 | 6 | # PURLs 7 | 8 | PURLs, or persistent uniform resource locators, are URLs that don’t change. omg.lol customers can make as many PURLs as they’d like. 9 | 10 | ## What’s a PURL? 11 | 12 | A PURL is a way to refer to something that changes (or might change) in a way that doesn’t. With a PURL, you can create an unchanging URL like `you.omg.lol/joke` and point it to some other URL like `reddit.com/r/Jokes/comments/hexrqq/what_did_yoda_say_when_he_saw_himself_in_4k/`. When people visit `you.omg.lol/joke` they’ll be taken to that Reddit joke page. But at any point you can change that destination URL, and make your `/joke` PURL go to another joke! A better one, maybe. 13 | 14 | ## Why use a PURL? 15 | 16 | There are all kinds of uses. One is as simple as the example above—a “joke of the day” where the URL never changes but the joke does. PURLs are also useful for pointing to very specific resources that don’t move often—but when they do, you’re able to update the destination URL and effectively keep the PURL accurate indefinitely. 17 | 18 | ## Accessing your PURLs 19 | 20 | By default, all of your PURLs work on two domains: `omg.lol` and `url.lol` (which is our dedicated PURL service domain). This means that for every PURL you create, the following URLs will resolve to it: 21 | 22 | 1. `you.omg.lol/purl` 23 | 2. `omg.lol/you/purl` 24 | 3. `you.url.lol/purl` 25 | 26 | The `url.lol` domain exists for your convenience, in the event that your omg.lol domain is configured in such a way that you can’t use PURLs (e.g. DNS settings that point it away from our server). 27 | 28 | ## PURL hit counter 29 | 30 | Every time someone accesses your PURL, we’ll count a hit for you. You can view the total hits for each of your PURLs on your addresses’s PURLs page. We don’t track any data associated with PURL visits and respect everyone’s privacy. 31 | 32 | ## Preview page 33 | 34 | You can append `/wut` to any PURL to view a URL preview page, if you’d like to avoid surprises. 35 | 36 | ## Do’s and Don’ts 37 | 38 | **Do** make PURLs that are useful, convenient, and fun! These are harmless PURLs, and they are encouraged. 39 | 40 | **Don’t** make PURLs that are spammy, point to malicious resources, or might make anyone have a bad day. These are harmful PURLs and they’re unwelcome here. 41 | 42 | ## Reporting abuse 43 | 44 | You can report abuse related to PURLs (or anything else) by emailing [abuse@omg.lol](mailto:abuse@omg.lol) at any time. 45 | -------------------------------------------------------------------------------- /api/docs/Directory.postman_collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "_postman_id": "503b195f-ba36-4323-9cd9-00da416652f5", 4 | "name": "Directory", 5 | "description": "Retrieve the address directory, consisting of addresses that have opted in to be listed", 6 | "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", 7 | "_exporter_id": "12532425" 8 | }, 9 | "item": [ 10 | { 11 | "name": "Retreive the address directory", 12 | "request": { 13 | "method": "GET", 14 | "header": [], 15 | "url": { 16 | "raw": "https://{{base_url}}/directory", 17 | "protocol": "https", 18 | "host": [ 19 | "{{base_url}}" 20 | ], 21 | "path": [ 22 | "directory" 23 | ] 24 | }, 25 | "description": "Retrieve the address directory" 26 | }, 27 | "response": [ 28 | { 29 | "name": "Retreive the address directory", 30 | "originalRequest": { 31 | "method": "GET", 32 | "header": [], 33 | "url": { 34 | "raw": "https://{{base_url}}/directory", 35 | "protocol": "https", 36 | "host": [ 37 | "{{base_url}}" 38 | ], 39 | "path": [ 40 | "directory" 41 | ] 42 | } 43 | }, 44 | "status": "OK", 45 | "code": 200, 46 | "_postman_previewlanguage": "json", 47 | "header": [ 48 | { 49 | "key": "Date", 50 | "value": "Fri, 18 Nov 2022 17:23:18 GMT" 51 | }, 52 | { 53 | "key": "Server", 54 | "value": "Apache" 55 | }, 56 | { 57 | "key": "Access-Control-Allow-Origin", 58 | "value": "*" 59 | }, 60 | { 61 | "key": "Access-Control-Allow-Methods", 62 | "value": "GET,POST,OPTIONS,DELETE,PUT,PATCH" 63 | }, 64 | { 65 | "key": "Access-Control-Allow-Headers", 66 | "value": "Authorization,Content-Type" 67 | }, 68 | { 69 | "key": "Content-Length", 70 | "value": "1792" 71 | }, 72 | { 73 | "key": "Keep-Alive", 74 | "value": "timeout=5, max=100" 75 | }, 76 | { 77 | "key": "Connection", 78 | "value": "Keep-Alive" 79 | }, 80 | { 81 | "key": "Content-Type", 82 | "value": "application/json; charset=utf-8" 83 | } 84 | ], 85 | "cookie": [], 86 | "body": "{\n \"request\": {\n \"status_code\": 200,\n \"success\": true\n },\n \"response\": {\n \"message\": \"Here’s the omg.lol directory.\",\n \"url\": \"https://home.omg.lol/directory\",\n \"directory\": [\n \"0\",\n \"adam\",\n ...\n ]\n }\n}" 87 | } 88 | ] 89 | } 90 | ] 91 | } -------------------------------------------------------------------------------- /api/docs/Service.postman_collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "_postman_id": "71cd737d-246e-4125-a421-3188d2ab6670", 4 | "name": "Service", 5 | "description": "Obtain service information about omg.lol", 6 | "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", 7 | "_exporter_id": "12532425" 8 | }, 9 | "item": [ 10 | { 11 | "name": "Retrieve service information and statistics", 12 | "request": { 13 | "auth": { 14 | "type": "noauth" 15 | }, 16 | "method": "GET", 17 | "header": [], 18 | "url": { 19 | "raw": "https://{{base_url}}/service/info", 20 | "protocol": "https", 21 | "host": [ 22 | "{{base_url}}" 23 | ], 24 | "path": [ 25 | "service", 26 | "info" 27 | ] 28 | }, 29 | "description": "Get information and statistics about the omg.lol service" 30 | }, 31 | "response": [ 32 | { 33 | "name": "Retrieve service information and statistics", 34 | "originalRequest": { 35 | "method": "GET", 36 | "header": [], 37 | "url": { 38 | "raw": "https://{{base_url}}/service/info", 39 | "protocol": "https", 40 | "host": [ 41 | "{{base_url}}" 42 | ], 43 | "path": [ 44 | "service", 45 | "info" 46 | ] 47 | } 48 | }, 49 | "status": "OK", 50 | "code": 200, 51 | "_postman_previewlanguage": "json", 52 | "header": [ 53 | { 54 | "key": "Date", 55 | "value": "Thu, 23 Jun 2022 04:53:45 GMT" 56 | }, 57 | { 58 | "key": "Server", 59 | "value": "Apache" 60 | }, 61 | { 62 | "key": "Access-Control-Allow-Origin", 63 | "value": "*" 64 | }, 65 | { 66 | "key": "Access-Control-Allow-Methods", 67 | "value": "GET,POST,OPTIONS,DELETE,PUT" 68 | }, 69 | { 70 | "key": "Access-Control-Allow-Headers", 71 | "value": "Authorization" 72 | }, 73 | { 74 | "key": "Content-Length", 75 | "value": "343" 76 | }, 77 | { 78 | "key": "Keep-Alive", 79 | "value": "timeout=5, max=100" 80 | }, 81 | { 82 | "key": "Connection", 83 | "value": "Keep-Alive" 84 | }, 85 | { 86 | "key": "Content-Type", 87 | "value": "text/json;charset=UTF-8" 88 | } 89 | ], 90 | "cookie": [], 91 | "body": "{\n \"request\": {\n \"status_code\": 200,\n \"success\": true\n },\n \"response\": {\n \"message\": \"As of 2022-10-05T03:13:14+00:00, omg.lol has 1,811 members and hosts 1,685 active addresses. Of those, 888 have active profiles or web pages.\",\n \"members\": 1811,\n \"addresses\": 1685,\n \"profiles\": 888\n }\n}" 92 | } 93 | ] 94 | } 95 | ] 96 | } -------------------------------------------------------------------------------- /info/Feedback & Help/thanks.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: Thanks to all of the awesome people who have helped us out! 3 | Last Updated: 2022-10-08 01:52 AM EDT 4 | --- 5 | 6 | # Thanks / Hall of Fame 7 | 8 |We sincerely appreciate these amazing folks who have helped OMG.LOL with their responsible disclosure of bugs, vulnerabilities, and so much other stuff.
9 | 10 |Want to get on this list? Report any bugs to bugs@omg.lol.
37 | -------------------------------------------------------------------------------- /info/Community/irc-clients.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: IRC clients used by the community 3 | Last Updated: 2022-10-11 01:03 AM EDT 4 | --- 5 | 6 | # IRC Clients 7 | 8 | If you want to use our IRC server, you’ll need to connect with a client. Our [IRC server article](/info/community/irc) talks all about how to get connected, but if you’re wondering what client to use, you can start here. 9 | 10 | Since IRC has been around for a while, there are [a ton of clients](https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients) out there. This article will focus on ones that members of our community use. 11 | 12 | ## irssi 13 | 14 | [irssi](https://irssi.org) is a classic terminal-friendly client. Simple but powerful (as most terminal stuff goes). 15 | 16 | ## WeeChat 17 | 18 | [WeeChat](https://weechat.org) is another terminal-friendly client that’s extremely flexible. 19 | 20 | ## Quassel 21 | 22 | [Quassel](https://quassel-irc.org) is a cross-platform client with a unique client/core model. In addition to the client connecting directly to the IRC server, you can also set up a “core” that will maintain a connection to the server, and then your client(s) can connect to that core. This makes it easy to maintain a persistent connection and to easily use multiple different devices. 23 | 24 | ## IRCCloud 25 | 26 | [IRCCloud](https://www.irccloud.com/) is a service that offers a persistent cloud connection to the IRC server, a web interface, mobile apps, and a built-in bouncer (so you can also connect with any other client you’d like). It costs $50/year, but configuration is straightforward and the service is slick. 27 | 28 | ## Convos 29 | 30 | [Convos](https://convos.chat/) is a open-source web-based IRC client that offers a persistent connection to the IRC server, video chatting via Jitsi and similar features to IRCCloud. It does require you to provide your own server to host the client, but the configuration is straightforward and should get you started with it within 5-10 minutes. Alternatively, you can join one hosted by the omg.lol community called [KAIFA](https://orc.kaifa.ch). 31 | 32 | ### How to connect via Convos 33 | Head to connections and click on add connection, use `irc.social.lol:6697` as the server and port, check *Secure Connection* then expand *Authentication Settings* and fill out the both fields with your IRC login credentials. Optionally you can also fill out the *Nickname* field to let the Client set a nickname for you. 34 | 35 | ## The Lounge 36 | 37 | [The Lounge](https://thelounge.chat) is a web-based IRC client that offers an open-source alternative to IRCCloud. You do need your own server to host it, but some members of the omg.lol community let other members use theirs. Contact [Bye](https://bye.omg.lol) for more details. 38 | 39 | ### Configuration 40 | 41 | On the Connect screen in The Lounge, use `irc.social.lol` as the server, and your IRC password in the *server password* slot. See more on the [IRC help page](/help/irc) 42 | -------------------------------------------------------------------------------- /info/Profile & Web/advanced-editor.md: -------------------------------------------------------------------------------- 1 | --- 2 | Description: The advanced web editor is our most advanced editor yet, as the name would suggest 3 | Last Updated: 2022-10-15 1:03 PM EDT 4 | --- 5 | 6 | # Advanced Web Editor 7 | 8 | Our Advanced web editor is a major improvement over the [Classic editor](/info/classic-editor), offering a unique Markdown-powered approach to managing your profile page. With this editor, your profile page is essentially a Markdown document, making it easy to add content and rearrange things however you wish. 9 | 10 | ## Profile or Web pages 11 | 12 | The Advanced editor can be used to edit and publish [Profile](/info/profiles) pages (with the aforementioned Markdown document approach), or to manage a simple web page (just set your **Page type** to **Raw HTML only**). 13 | 14 | ## Profile Metadata 15 | 16 | The Advanced editor uses a custom approach to defining profile metadata, intended to preserve the beauty of the underlying Markdown document. You can define a metadata block like this: 17 | 18 | ``` 19 | | Pronouns: they/them 20 | | Occupation: Seed Preservationist 21 | | Location: Svalbard 22 | ``` 23 | 24 | Each line above is its own _metadata item_, which is in turn rendered into HTML with a “metadata” class and a unique ID to aid in page styling and structure. For example, the metadata block above would be rendered into HTML as: 25 | 26 | ``` 27 | 28 | 29 | 30 | ``` 31 | 32 | Certain metadata items also receive icons automatically, but this can be disabled if desired. 33 | 34 | ## Profile Sections 35 | 36 | Sections can be added to pages with a special section indicator, like this: 37 | 38 | ``` 39 | --- Bio --- 40 | ``` 41 | 42 | This would be rendered as: 43 | 44 | ``` 45 |17 |
18 |
23 |
24 |
29 |
30 |
35 |
36 |
41 |
42 |
47 |
48 |
You’re about to enjoy the best email experience of your life.
19 | 20 |You can start using your omg.lol address with your existing service right now.
24 |Read on below!
25 |Jan 1 23:59:59 server postfix/srvc[1234]: ABCDEF0123: from=<sender@domain>, size=1234, nrcpt=1 (queue active)
29 | Jan 1 23:59:59 server postfix/srvc[1234]: ABCDEF0123: to=<=?utf-8?B?8J+kqQ==?=@omg.lol>
30 |
31 | In this case, the message is received, but the address is no longer intact, and the server doesn’t know what to do with it (so it won’t be delivered).
32 |
33 | ### Mail server issue
34 |
35 | If the email winds up going to a downstream destination server that doesn’t know how to deal with emoji, here’s what can happen:
36 |
37 | Jan 1 23:59:59 server postfix/srvc[1234]: ABCDEF0123: from=<sender@domain>, size=1234, nrcpt=1 (queue active)
38 | Jan 1 23:59:59 server postfix/srvc[1234]: ABCDEF0123: to=<forwarded@destination>, orig_to=<🍋@omg.lol>, status=bounced (SMTPUTF8 is required, but was not offered by host mailserver[203.0.113.42])
39 |
40 | Here we can see that the emoji address survived intact when the message reached omg.lol, but the server to which the message was forwarded didn’t have support for emoji addresses and the email wasn’t delivered.
41 |
42 | ## Mastodon
43 |
44 | Sadly, due to the ActivityPub protocol that Mastodon is based upon, emoji addresses aren't supported on Mastodon. :(
45 |
46 | ## What to do?
47 |
48 | There’s no way to guarantee how things will behave when using emoji in email or web addresses, so this is a classic case of buyer beware. When you register an emoji address, though, you’ll also receive the corresponding Punycode namespace for both email and web (and this will appear in the address configuration for your reference). So if you’re feeling brave, go for it!
49 |
--------------------------------------------------------------------------------
/profiles/themes/emerald-isle.css:
--------------------------------------------------------------------------------
1 | /*
2 | Theme: Emerald Isle
3 | Author: Bye (@_byemc)
4 | License: MIT
5 | Version: 1.0
6 | Description: Based on the country I live in, a green blob surrounded with blue.
7 | */
8 |
9 | @import url('https://omg.cache.lol/css/type.css');
10 |
11 | * {
12 | box-sizing: border-box;
13 | }
14 |
15 | body {
16 | font-size: 1.2em;
17 | margin: 0;
18 | padding: 2em;
19 | font-family: 'Mint Grotesk', sans-serif;
20 | font-weight: 300;
21 | background: #00b0b0;
22 | background-repeat: no-repeat;
23 | background-attachment: fixed;
24 | height: 100%;
25 | overflow-wrap: break-word;
26 | color: #ececec;
27 | }
28 |
29 | main {
30 | display: block;
31 | max-width: 30em;
32 | border-radius: 1em;
33 | margin: 0 auto;
34 | text-align: center;
35 | background: #21b121;
36 | padding: 2em;
37 | }
38 |
39 | h1 {
40 | margin: 0;
41 | }
42 |
43 | #profile-items {
44 | /*border-top: 1px solid #666;*/
45 | padding: .5em 0 0 0;
46 | margin: 1.5em 0 0 0;
47 | }
48 |
49 | #profile-items :is(h1, h2, h3, h4, h5, h6) {
50 | text-align: left;
51 | margin: 0;
52 | }
53 |
54 | #profile-items h1 { font-size: 1.2em; }
55 | #profile-items h2 { font-size: 1.2em; }
56 | #profile-items h3 { font-size: 1.2em; }
57 | #profile-items h4 { font-size: 1.1em; }
58 | #profile-items h5 { font-size: 1.1em; }
59 | #profile-items h6 { font-size: 1.1em; }
60 |
61 | #profile-picture-container {
62 | margin: auto;
63 | margin-bottom: 1em;
64 | }
65 |
66 | #profile-picture {
67 | border-radius: 0.25em;
68 | height: 8.7em;
69 | }
70 |
71 | #pronouns {
72 | margin: 0;
73 | font-weight: 400;
74 | color: #a7d4a7;
75 | }
76 |
77 | #pronouns a:link,
78 | #pronouns a:visited,
79 | #pronouns a:hover,
80 | #pronouns a:active {
81 | color: var(--comment);
82 | }
83 |
84 | #details {
85 | margin: 1em 0;
86 | }
87 |
88 | #location {
89 | display: inline-block;
90 | }
91 |
92 | #occupation {
93 | display: inline-block;
94 | }
95 |
96 | #location, #occupation {
97 | margin: .5em;
98 | padding: 0 .5em;
99 | }
100 |
101 | #bio {
102 | text-align: center;
103 | font-size: 110%;
104 | line-height: 140%;
105 | }
106 |
107 | #footer {
108 | margin: 0;
109 | margin-top: 5em;
110 | font-size: 90%;
111 | font-weight: 300;
112 | color: #a7d4a7;
113 | }
114 |
115 | #footer a:link,
116 | #footer a:visited,
117 | #footer a:hover,
118 | #footer a:active {
119 | color: #f8e1d4;
120 | text-decoration: none;
121 | border: 0;
122 | }
123 |
124 | #footer .fa-plug {
125 | transform: rotate(0deg);
126 | transition: all 0.3s ease;
127 | }
128 |
129 | #footer:hover .fa-plug {
130 | transform: rotate(90deg);
131 | transition: all 0.3s ease;
132 | }
133 |
134 | ul {
135 | text-align: left;
136 | }
137 |
138 | li {
139 | line-height: 170%;
140 | }
141 |
142 | a:link,
143 | a:visited {
144 | color: #f8e1d4;
145 | border-bottom: 1px dotted #f8e1d4;
146 | }
147 | a:hover,
148 | a:active {
149 | color: #f8e1d4;
150 | border-bottom: 2px solid #f8e1d4;
151 | }
152 |
153 | .omg-icon-li {
154 | position: relative;
155 | border: 0px solid #f8e1d4;
156 | }
157 |
158 | .omg-icon {
159 | display: inline-block;
160 | width: 1em;
161 | position: absolute;
162 | top: -0.1em;
163 | left: -1.5em;
164 | }
165 |
166 | .omg-icon svg {
167 | width: 100%;
168 | height: 1em;
169 | vertical-align: middle;
170 | }
171 |
172 | .omg-icon::before {
173 | display: none;
174 | }
175 |
176 | /*
177 | @media (prefers-color-scheme: dark) {
178 | .omg-icon svg {
179 | fill: #fff;
180 | }
181 | }
182 | */
183 |
184 | @media (prefers-color-scheme: dark) {
185 | .omg-icon.rainbow-me svg {
186 | fill: #f8e1d4;
187 | }
188 | }
189 |
190 | @media (max-width: 500px) {
191 | body {
192 | font-size: 1em;
193 | padding: 1em;
194 | }
195 | main {
196 | padding: 1.5em;
197 | }
198 | }
199 |
200 | h1#name a i.fa-badge-check {
201 | color: #ff965e !important;
202 | }
203 |
--------------------------------------------------------------------------------
/info/Community/irc.md:
--------------------------------------------------------------------------------
1 | ---
2 | Description: All about our awesome IRC server
3 | Last Updated: 2022-11-05 02:24 AM EDT
4 | ---
5 |
6 | # Internet Relay Chat (IRC)
7 |
8 | Internet Relay Chat (or IRC) is an open standard for live chat on the internet. It’s [been around forever](https://en.wikipedia.org/wiki/Internet_Relay_Chat), and it’s great! And we’re using it here as part of our new super-chill [social.lol](/help/social.lol) platform.
9 |
10 | ### Getting Started
11 |
12 | To kick things off, visit your address's social.lol page and then click the "Create IRC account" button. **You’ll then receive a password — don’t lose it!**
13 |
14 | ### Connecting
15 |
16 | To use IRC, you need a _client_ that can connect to the _server_. There are [many clients](/info/extra/irc-clients) available, all with different features.
17 |
18 | You can point any client at `irc.social.lol` (port `6667` for plaintext transfer, or port `6697` for a secure connection). Be sure to configure your connection with a server password (using the same password provided above) to authenticate when connecting. If you don’t include a password, you’ll be disconnected. 😟
19 |
20 | Get help from a real human, whenever you need it. Try one of these options:
9 | 10 |Send a message to help@omg.lol and we’ll respond soon. (This is the best way to get private, 1-on-1 help.)
15 |Join our IRC server to chat with friendly folks who can lend a hand with most things.
19 |Message us on Mastodon and we’d be glad to help you there.
23 || '.$name.' |
84 | ';
85 |
86 | // Now we’ll save the omg.lol icon review and CSS files.
87 |
88 | file_put_contents('omg.lol-icons.html', $html);
89 | file_put_contents('omg.lol-glyphs.css', $omg_css);
90 |
91 | // We’ll merge the Font Awesome and omg.lol icon arrays, and check for any icons that we’ve chosen to override.
92 |
93 | $icons = array_merge($font_awesome_icons, $omg_icons);
94 | $overrides = file('defined_overrides.txt', FILE_IGNORE_NEW_LINES);
95 | foreach($overrides as $line) {
96 | $bits = explode(' ', $line);
97 | if(isset($icons[$bits[0]])) {
98 | $icons[$bits[0]] = implode(' ', array_slice($bits, 1));
99 | }
100 | }
101 |
102 | // Finally, we’ll write the icon .json file.
103 |
104 | $icons = json_encode($icons, JSON_PRETTY_PRINT);
105 | file_put_contents('icons.json', $icons);
106 |
107 | $id = uniqid();
108 | echo "\n".'Icon preparation complete. Check icons: https://static.omg.lol/profiles/icons/omg.lol-icons.html?v='.$id.'';
109 |
--------------------------------------------------------------------------------
/profiles/themes/base.css:
--------------------------------------------------------------------------------
1 | @import url('/type/font-mint-grotesk-regular.css');
2 | @import url('/type/font-mint-grotesk-bold.css');
3 | @import url('/type/font-mint-grotesk-italic.css');
4 | @import url('/type/fontawesome-free/css/all.css');
5 | @import url('/profiles/icons/omg.lol-icons.css');
6 |
7 | @font-face {
8 | font-family: 'omg.lol';
9 | src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAAZUAA4AAAAAC4gAAAYAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGigbXhwgBmAAVBEICogAhm4LFAABNgIkAyQEIAWITQc0G+4JUVRv4mQ/E2w6dQUvogGnutQl66BRxzWfEd7Fw9d+7M/dt4hrsmaaSWSVaJnQiIRI6wwNQuab/oDb+gcYRFk9q8ZmZW7azHNgJHoN1xGLXxFoydZb+IBxjgb470/u/3Ov6h/Hsxatm2EhzAloRP7YL3O3tCbNLVir8E91LJEt0FNgqUgH5jmRCawHv11IagHthEKhXAgJ1agWCFTqFUKwsVVQAWIZlo1dF0eDWhDDh2SJAjRrwUySVkg0KVGanf/zSv9/I/SS83dzZ72GnPeJ5sFRMpuf4kk3Enz9OFtEriC9rfIHwA3oR937f98my9Hk2Q/wAKlCuALoJ0dCgWYiAc2bWQHhbPmkrB+qUz+qPYqL6/vR/z+Oa1ub2mitiPz/H6IKiBrNu8UOiBdApmaWKyRRfZsl7XF5ohylVMp+pmrsFJ/MfywzsZV7D27d4jqC7HgxVsnzlWefJt5kMUZq5MK4Kqaicn3040KPsiFMTm31I/RWNV+9/65vNc9xyHqm1cgJZnhkDRgY6qOP7OHnChMp5bV5xWXZXTzIXmVZ1qpQZz6QL/kodXcHGFiDZzdx1+5lNRneZB0CsvAWJzXKCty02f/wccHYzDHePJQ2q/px9Hn+/Pn9j9q7duNGYN54FwxHffeC4YF03PgIY9aL+QRSRNb4wBtCw9ZwayPqbTFylgjbENBo2Gh3lqjIi/eZzxwy1gt2Dpcfnz978OhWp0q+eYoqQPWKN2pSSpvuN370Fnr72x/LTB++CbOfjBneZBstof8ccbl1gtBGV9Ga0+KaZys2FE0/oQ+4E35vv+N88WMXM/yt03m2a7a45hannsnKMU/7+dKHuqDGrbE1phFf7dcgy0l3y0sN6nrpH9gWdH4f5CYgtchsXPL+wm+HXescSgss6ZK3Wv53yioe2ZJcp9/rCyF++t1bZtedOD9fv2XTgpX7LsEQmSLzfM7/0h/j0/u1udfKedkVWGZkJJIZTDSiYY1RhrLEzeklnrkuZJTx5O3NHqw5SxHris4lpPiNzW8+SoxXaevz7N6xzlhallZJJityFhcJ93+5JtS95GJobMXWYE3+naB0+JhIdfC2YXJ/KPMCWpv9PMS1xDaoRLMt4fOikFK3xq1rZDad94uEruJVsMzSfl5Ayxe/e/s5FkLbCSj91Ve53fVWYqCoP4gIa03wvOxsqU5F7/o53LL1CExrFZSl2Pkqt7l8mnCzPbwtHj8tGgg58pnCxU+c11Pj35zm5RhgcneZdfRryTjaNG/+7+3WxAJZSdWrrV7tGXNeDQ13HKI9WnLabw10pwxi9c3h24SEqHmHxmKdzWs7pCYfuoMOKNesN9t5aIvEevmx/XIR1q412yEqXXGcu7jVVYj/Lj2KxvWQLmJcyY8mAEBA8bossalZlfBVLBMDvGWeSwHg3W7L/v86/5mQJJe9i3IJBGX3f9+nYjeGER8/jWMVWfef+670DOIOpGu2F8627zV/ttTPu7oIUOHRCxJCYIWw2LkkAijGPJDVUYt4G0mZbRR6VV/O8SjRTo9STZaiXL0dqNDgBKr0uIlqTd5DPbGPuxvI/YRCZAlwM3MQYXLjSGpjLwoLO305gygxte9RajQPlOsvExUGI1FlroWoNtpN1FP3+Y0Gjv2+VdUPIi91eHf+aB+JVLeOakkkjdTSlPYvSIhkmf7JRXNV6UgOBdLoLS+UW9+p9+fbgKEYHhm/ShjxkIzwoQqintQV8BdkZabmd+sQHMWSWaN3R1Huenh8u6TjibR/UnZF0s+Gqmu6kJMitBYfQZ4I6SgDRg3q1qmLDuKg7AmDzSPajOJs/tY+JES1VpvXmmlgVItGzaMQqfFs36GSiHaZJGSSujmETSKgqqRD5OQhsmwzDVxs1a7XNlsh0qZmywad9DEvHYRBYXCR4qUrVqxAfEmHMEeooxhVqQNad6qrCLw+S6ZU+eGLOggcO7cSB6OQUSSq5xvL6egRtZx1zEpDuUvt2GUaIzRkvp+GjmEHpjS62nN25thxPh3WEBIK/nvqWLniWmejQZ5iJcoAAAAA') format('woff2');
10 | font-weight: 900;
11 | font-style: normal;
12 | font-display: swap;
13 | }
14 |
15 | * {
16 | box-sizing: border-box;
17 | }
18 |
19 | body {
20 | font-size: 1.2em;
21 | margin: 0;
22 | padding: 2em;
23 | font-family: 'Mint Grotesk', sans-serif;
24 | /*background: linear-gradient(0deg, #3fb6b6 0%, #d56b86 100%);*/
25 | background: linear-gradient(0deg, rgba(26,151,152,1) 0%, rgba(191,114,240,1) 100%);
26 | background-repeat: no-repeat;
27 | background-attachment: fixed;
28 | height: 100%;
29 | overflow-wrap: break-word;
30 | }
31 |
32 | main {
33 | display: block;
34 | max-width: 30em;
35 | border-radius: 1em;
36 | margin: 0 auto;
37 | text-align: center;
38 | background: rgba(255, 255, 255, .5);
39 | padding: 2em;
40 | }
41 |
42 | h1 {
43 | margin: 0;
44 | }
45 |
46 | #profile-items {
47 | /*border-top: 1px solid #666;*/
48 | padding: .5em 0 0 0;
49 | margin: 1.5em 0 0 0;
50 | }
51 |
52 | #profile-items :is(h1, h2, h3, h4, h5, h6) {
53 | text-align: left;
54 | margin: 0;
55 | }
56 |
57 | #profile-items h1 { font-size: 1.2em; }
58 | #profile-items h2 { font-size: 1.2em; }
59 | #profile-items h3 { font-size: 1.2em; }
60 | #profile-items h4 { font-size: 1.1em; }
61 | #profile-items h5 { font-size: 1.1em; }
62 | #profile-items h6 { font-size: 1.1em; }
63 |
64 | #profile-picture-container {
65 | margin: auto;
66 | color: #555;
67 | margin-bottom: 1em;
68 | }
69 |
70 | #profile-picture {
71 | border-radius: 0.25em;
72 | height: 8.7em;
73 | }
74 |
75 | #pronouns {
76 | margin: 0 0 1em 0;
77 | color: #666;
78 | }
79 |
80 | #pronouns a:link,
81 | #pronouns a:visited,
82 | #pronouns a:hover,
83 | #pronouns a:active {
84 | color: #666;
85 | }
86 |
87 | #details {
88 | margin: 1em 0;
89 | }
90 |
91 | #location {
92 | display: inline-block;
93 | }
94 |
95 | #occupation {
96 | display: inline-block;
97 | }
98 |
99 | #location, #occupation {
100 | margin: .5em;
101 | padding: 0 .5em;
102 | }
103 |
104 | #bio {
105 | text-align: center;
106 | font-size: 110%;
107 | line-height: 140%;
108 | }
109 |
110 | #footer {
111 | margin: 0;
112 | margin-top: 5em;
113 | color: #555;
114 | text-align: center;
115 | }
116 |
117 | #footer a:link,
118 | #footer a:visited,
119 | #footer a:hover,
120 | #footer a:active {
121 | color: #555;
122 | text-decoration: none;
123 | border: 0;
124 | }
125 |
126 | #prami {
127 | width: 2em;
128 | }
129 |
130 | ul {
131 | text-align: left;
132 | }
133 |
134 | li {
135 | line-height: 170%;
136 | }
137 |
138 | a:link,
139 | a:visited {
140 | color: #000;
141 | text-decoration-color: #555;
142 | text-decoration: none;
143 | border-bottom: 1px dotted #000;
144 | }
145 | a:hover,
146 | a:active {
147 | color: #000;
148 | text-decoration-color: #000;
149 | text-decoration: none;
150 | border-bottom: 2px solid #000;
151 | }
152 |
153 | .logotype {
154 | color: #f783ac;
155 | font-family: 'omg.lol';
156 | }
157 |
158 | #verification {
159 | font-size: 80%;
160 | color: #0089cf;
161 | }
162 |
163 | @media (max-width: 500px) {
164 | body {
165 | font-size: 1em;
166 | padding: 1em;
167 | }
168 | main {
169 | padding: 1.5em;
170 | }
171 | }
172 |
--------------------------------------------------------------------------------
/profiles/icons/omg.lol-icons.html:
--------------------------------------------------------------------------------
1 | | andycarolan | |
| anilist | |
| archiveofourown | |
| basic-attention-token | |
| bookshop | |
| buymeacoffee | |
| cash-app | |
| clarus | |
| clubhouse | |
| codeberg | |
| coindrop | |
| credly | |
| ecosia | |
| eyeem | |
| fastmail | |
| fediverse | |
| geotastic | |
| giphy | |
| gumroad | |
| hackerone | |
| hey | |
| honk | |
| instapaper | |
| keyoxide | |
| ko-fi | |
| laker | |
| letterboxd | |
| liberapay | |
| lichess | |
| litecoin | |
| literal | |
| lobsters | |
| matrix | |
| mediawiki | |
| mltshp | |
| musicboard | |
| myanimelist | |
| neatnik | |
| ninegag | |
| nintendo-switch | |
| notion | |
| opensea | |
| osk | |
| osu | |
| passkey | |
| pinboard | |
| pixelfed | |
| plutonium | |
| polywork | |
| postype | |
| prami | |
| procreate | |
| pronounspage | |
| rainbow-me | |
| rarible | |
| rate-your-music | |
| ravencoin | |
| read-cv | |
| revolt | |
| revue | |
| roblox | |
| session | |
| signal-app | |
| sourcehut | |
| spacehey | |
| spark-ar | |
| sudomemo | |
| tetrio | |
| threema | |
| tinyletter | |
| toss | |
| venmo | |
| verified | |
| vero | |
| vukky | |
| wattpad | |
| well | |
| wikimedia-community | |
| writeas | |
| xmpp |
3 |
--------------------------------------------------------------------------------
/profiles/themes/themes.json:
--------------------------------------------------------------------------------
1 | {
2 | "themes": {
3 | "default": {
4 | "name": "Default",
5 | "author": "OMG.LOL",
6 | "author_url": "https://omg.lol",
7 | "version": "1.0",
8 | "license": "MIT",
9 | "license_url": "https://opensource.org/licenses/MIT",
10 | "description": "A friendly, simple look for your amazing profile.",
11 | "url": "https://meta.omg.lol/meta/css/profile/profile.css",
12 | "repo": "https://github.com/neatnik/omg.lol/tree/main/profiles/themes"
13 | },
14 | "cherry-blossom": {
15 | "name": "Cherry Blossom",
16 | "author": "OMG.LOL",
17 | "author_url": "https://omg.lol",
18 | "version": "1.0",
19 | "license": "MIT",
20 | "license_url": "https://opensource.org/licenses/MIT",
21 | "description": "Springtime, but all year long.",
22 | "url": "https://meta.omg.lol/meta/profiles/themes/cherry-blossom.css",
23 | "repo": "https://github.com/neatnik/omg.lol/tree/main/profiles/themes"
24 | },
25 | "dark": {
26 | "name": "Dark",
27 | "author": "OMG.LOL",
28 | "author_url": "https://omg.lol",
29 | "version": "1.0",
30 | "license": "MIT",
31 | "license_url": "https://opensource.org/licenses/MIT",
32 | "description": "It’s super dark!",
33 | "url": "https://meta.omg.lol/meta/profiles/themes/dark.css",
34 | "repo": "https://github.com/neatnik/omg.lol/tree/main/profiles/themes"
35 | },
36 | "gilded": {
37 | "name": "Gilded",
38 | "author": "Nima Owji",
39 | "author_url": "https://nima.omg.lol",
40 | "version": "1.0",
41 | "license": "MIT",
42 | "license_url": "https://opensource.org/licenses/MIT",
43 | "description": "Bold and dark with a touch of gold.",
44 | "url": "https://meta.omg.lol/meta/profiles/themes/gilded.css",
45 | "repo": "https://github.com/nimaowji/omglol-style"
46 | },
47 | "gradient": {
48 | "name": "Gradient",
49 | "author": "Jamie Thalacker",
50 | "author_url": "https://jamiethalacker.omg.lol",
51 | "version": "1.0",
52 | "license": "MIT",
53 | "license_url": "https://opensource.org/licenses/MIT",
54 | "description": "A nice theme with an animated, gradient background.",
55 | "url": "https://gitlab.com/jamiethalacker/omg-lol-themes/-/raw/master/gradient.css",
56 | "repo": "https://gitlab.com/jamiethalacker/omg-lol-themes"
57 | },
58 | "minimal": {
59 | "name": "Minimal",
60 | "author": "Jane Manchun Wong",
61 | "author_url": "https://jane.omg.lol",
62 | "version": "1.0",
63 | "license": "MIT",
64 | "license_url": "https://opensource.org/licenses/MIT",
65 | "description": "A minimal theme with automatic light/dark mode detection.",
66 | "url": "https://meta.omg.lol/meta/profiles/themes/minimal.css",
67 | "repo": "https://github.com/wongmjane/omglol-style"
68 | },
69 | "naked": {
70 | "name": "Naked",
71 | "author": "OMG.LOL",
72 | "author_url": "https://omg.lol",
73 | "version": "1.0",
74 | "license": "MIT",
75 | "license_url": "https://opensource.org/licenses/MIT",
76 | "description": "No style at all, for those who want to do their own thing!",
77 | "url": "https://meta.omg.lol/meta/profiles/themes/naked.css",
78 | "repo": "https://github.com/neatnik/omg.lol/tree/main/profiles/themes"
79 | },
80 | "monokai": {
81 | "name": "Monokai",
82 | "author": "Dakota Chambers",
83 | "author_url": "https://dakota.omg.lol",
84 | "version": "1.0",
85 | "license": "MIT",
86 | "license_url": "https://opensource.org/licenses/MIT",
87 | "description": "Your text editor's favorite color palette. Adapted from the Monokai color scheme by Wimer Hazenberg (@monokai).",
88 | "url": "https://meta.omg.lol/meta/profiles/themes/monokai.css",
89 | "repo": "https://github.com/dcchambers/omg.lol/tree/main/profiles/themes"
90 | },
91 | "nothing_but_red": {
92 | "name": "Nothing but Red",
93 | "author": "Laker Turner",
94 | "author_url": "https://laker.gay",
95 | "version": "1.0",
96 | "license": "Public Domain",
97 | "license_url": "https://creativecommons.org/share-your-work/public-domain/",
98 | "description": " What happens when you put the cherry blossom theme through a dark mode extension.",
99 | "url": "https://github.com/PurpleHeartLabs/omg.lol/blob/main/profiles/themes/Nothing%20but%20Red.css",
100 | "repo": "https://github.com/PurpleHeartLabs/omg.lol/tree/main/profiles/themes"
101 | },
102 | "PurpleGray": {
103 | "name": "PurpleGray",
104 | "author": "Mert Dogu",
105 | "author_url": "https://mert.omg.lol",
106 | "version": "1.0",
107 | "license": "MIT",
108 | "license_url": "https://opensource.org/licenses/MIT",
109 | "description": "Purple.. and yeah, gray.",
110 | "url": "https://meta.omg.lol/meta/profiles/themes/PurpleGray.css",
111 | "repo": "https://github.com/rexulec/omg.lol/tree/main/profiles/themes"
112 | },
113 | "SpaceLatte": {
114 | "name": "Space Latte",
115 | "author": "Laker J.V Turner",
116 | "author_url": "https://laker.tech",
117 | "version": "1.0",
118 | "license": "MIT",
119 | "license_url": "https://opensource.org/licenses/MIT",
120 | "description": "Cosmic Latte, as an OMG.LOL theme.",
121 | "url": "https://meta.omg.lol/meta/profiles/themes/SpaceLatte.css",
122 | "repo": "https://github.com/lxjv/omg.lol/blob/main/profiles/themes/SpaceLatte.css",
123 | },
124 | "dracula": {
125 | "name": "Dracula",
126 | "author": "Bye",
127 | "author_url": "https://bye.omg.lol",
128 | "version": "1.0",
129 | "license": "MIT",
130 | "license_url": "https://opensource.org/licenses/MIT",
131 | "description": "Dark theme with a touch of purple. Adapted from the Dracula color scheme by @zenorocha",
132 | "url": "https://raw.githubusercontent.com/byemc/themes/master/css/profile/dracula.css",
133 | "repo": "https://git.byemc.xyz/themes"
134 | },
135 | "emerald-isle": {
136 | "name": "Emerald Isle",
137 | "author": "Bye",
138 | "author_url": "https://bye.omg.lol",
139 | "version": "1.0",
140 | "license": "MIT",
141 | "license_url": "https://opensource.org/licenses/MIT",
142 | "description": "island lol",
143 | "url": "https://raw.githubusercontent.com/byemc/themes/master/css/profile/emerald-isle.css",
144 | "repo": "https://git.byemc.xyz/themes"
145 | },
146 | "hotdog-stand": {
147 | "name": "Hot Dog Stand",
148 | "author": "Bye",
149 | "author_url": "https://bye.omg.lol",
150 | "version": "1.0",
151 | "license": "Public Domain",
152 | "license_url": "https://creativecommons.org/share-your-work/public-domain/",
153 | "description": "MY EYES (included as a joke in Windows 3.1)",
154 | "url": "https://raw.githubusercontent.com/byemc/themes/master/css/profile/hotdog-stand.css",
155 | "repo": "https://git.byemc.xyz/themes"
156 | }
157 | }
158 | }
159 |
--------------------------------------------------------------------------------
/api/docs/Web.postman_collection.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "_postman_id": "3604e992-8713-438e-ac9c-b6e4e60fa40d",
4 | "name": "Web",
5 | "description": "Manage profile page and web stuff on an omg.lol address",
6 | "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
7 | "_exporter_id": "12532425"
8 | },
9 | "item": [
10 | {
11 | "name": "Retrieve web page content",
12 | "request": {
13 | "auth": {
14 | "type": "bearer",
15 | "bearer": [
16 | {
17 | "key": "token",
18 | "value": "{{api_key}}",
19 | "type": "string"
20 | }
21 | ]
22 | },
23 | "method": "GET",
24 | "header": [],
25 | "url": {
26 | "raw": "https://{{base_url}}/address/:address/web",
27 | "protocol": "https",
28 | "host": [
29 | "{{base_url}}"
30 | ],
31 | "path": [
32 | "address",
33 | ":address",
34 | "web"
35 | ],
36 | "variable": [
37 | {
38 | "key": "address",
39 | "value": "haydensato"
40 | }
41 | ]
42 | },
43 | "description": "Retrieve web content and information for an address"
44 | },
45 | "response": [
46 | {
47 | "name": "Retrieve web page content",
48 | "originalRequest": {
49 | "method": "GET",
50 | "header": [],
51 | "url": {
52 | "raw": "https://{{base_url}}/address/:address/web",
53 | "protocol": "https",
54 | "host": [
55 | "{{base_url}}"
56 | ],
57 | "path": [
58 | "address",
59 | ":address",
60 | "web"
61 | ],
62 | "variable": [
63 | {
64 | "key": "address",
65 | "value": "haydenmatsui"
66 | }
67 | ]
68 | }
69 | },
70 | "status": "OK",
71 | "code": 200,
72 | "_postman_previewlanguage": "json",
73 | "header": [
74 | {
75 | "key": "Date",
76 | "value": "Fri, 24 Dec 2021 16:35:54 GMT"
77 | },
78 | {
79 | "key": "Server",
80 | "value": "Apache"
81 | },
82 | {
83 | "key": "Access-Control-Allow-Origin",
84 | "value": "*"
85 | },
86 | {
87 | "key": "Content-Length",
88 | "value": "402"
89 | },
90 | {
91 | "key": "Keep-Alive",
92 | "value": "timeout=5, max=100"
93 | },
94 | {
95 | "key": "Connection",
96 | "value": "Keep-Alive"
97 | },
98 | {
99 | "key": "Content-Type",
100 | "value": "text/json;charset=UTF-8"
101 | }
102 | ],
103 | "cookie": [],
104 | "body": "{\n \"request\": {\n \"status_code\": 200,\n \"success\": true\n },\n \"response\": {\n \"message\": \"Here is the web content for haydenmatsui.\",\n \"content\": \"# Hayden Sato\\n\\n| Pronouns: they/them\\n| Location: Fiji\\n| Occupation: Arborist\\n\\nI take care of trees!\\n\\n--- Profile Items ---\\n\\n- [Twitter](https://twitter.com)\\n- [Instagram](https://instagram.com)\\n\"\n }\n}"
105 | }
106 | ]
107 | },
108 | {
109 | "name": "Update web page content",
110 | "request": {
111 | "auth": {
112 | "type": "bearer",
113 | "bearer": [
114 | {
115 | "key": "token",
116 | "value": "{{api_key}}",
117 | "type": "string"
118 | }
119 | ]
120 | },
121 | "method": "POST",
122 | "header": [],
123 | "body": {
124 | "mode": "raw",
125 | "raw": "{\"content\": \"# Hayden Matsui\\n\\n| Pronouns: they/them\\n| Location: Fiji\\n| Occupation: Arborist\\n\\nI take care of trees!\\n\\n--- Profile Items ---\\n\\n- [Twitter](https://twitter.com)\\n- [Instagram](https://instagram.com)\\n\"}"
126 | },
127 | "url": {
128 | "raw": "https://{{base_url}}/address/:address/web",
129 | "protocol": "https",
130 | "host": [
131 | "{{base_url}}"
132 | ],
133 | "path": [
134 | "address",
135 | ":address",
136 | "web"
137 | ],
138 | "variable": [
139 | {
140 | "key": "address",
141 | "value": "haydensato"
142 | }
143 | ]
144 | },
145 | "description": "Update web content for an address"
146 | },
147 | "response": [
148 | {
149 | "name": "Update web page content",
150 | "originalRequest": {
151 | "method": "POST",
152 | "header": [],
153 | "body": {
154 | "mode": "raw",
155 | "raw": "{\"content\": \"# Hayden Matsui\\n\\n| Pronouns: they/them\\n| Location: Fiji\\n| Occupation: Arborist\\n\\nI take care of trees!\\n\\n--- Profile Items ---\\n\\n- [Twitter](https://twitter.com)\\n- [Instagram](https://instagram.com)\\n\"}"
156 | },
157 | "url": {
158 | "raw": "https://{{base_url}}/address/:address/web",
159 | "protocol": "https",
160 | "host": [
161 | "{{base_url}}"
162 | ],
163 | "path": [
164 | "address",
165 | ":address",
166 | "web"
167 | ],
168 | "variable": [
169 | {
170 | "key": "address",
171 | "value": "haydenmatsui"
172 | }
173 | ]
174 | }
175 | },
176 | "status": "OK",
177 | "code": 200,
178 | "_postman_previewlanguage": "json",
179 | "header": [
180 | {
181 | "key": "Date",
182 | "value": "Fri, 24 Dec 2021 16:37:12 GMT"
183 | },
184 | {
185 | "key": "Server",
186 | "value": "Apache"
187 | },
188 | {
189 | "key": "Access-Control-Allow-Origin",
190 | "value": "*"
191 | },
192 | {
193 | "key": "Content-Length",
194 | "value": "171"
195 | },
196 | {
197 | "key": "Keep-Alive",
198 | "value": "timeout=5, max=100"
199 | },
200 | {
201 | "key": "Connection",
202 | "value": "Keep-Alive"
203 | },
204 | {
205 | "key": "Content-Type",
206 | "value": "text/json;charset=UTF-8"
207 | }
208 | ],
209 | "cookie": [],
210 | "body": "{\n \"request\": {\n \"status_code\": 200,\n \"success\": true\n },\n \"response\": {\n \"message\": \"Your web content has been saved and published.\"\n }\n}"
211 | }
212 | ]
213 | },
214 | {
215 | "name": "Upload a profile picture",
216 | "request": {
217 | "auth": {
218 | "type": "bearer",
219 | "bearer": [
220 | {
221 | "key": "token",
222 | "value": "{{api_key}}",
223 | "type": "string"
224 | }
225 | ]
226 | },
227 | "method": "POST",
228 | "header": [],
229 | "body": {
230 | "mode": "file",
231 | "file": {
232 | "src": "/Users/adam/Desktop/hi.svg"
233 | }
234 | },
235 | "url": {
236 | "raw": "https://{{base_url}}/address/:address/pfp",
237 | "protocol": "https",
238 | "host": [
239 | "{{base_url}}"
240 | ],
241 | "path": [
242 | "address",
243 | ":address",
244 | "pfp"
245 | ],
246 | "variable": [
247 | {
248 | "key": "address",
249 | "value": "adam"
250 | }
251 | ]
252 | },
253 | "description": "Update web content for an address"
254 | },
255 | "response": [
256 | {
257 | "name": "Upload a profile picture",
258 | "originalRequest": {
259 | "method": "POST",
260 | "header": [],
261 | "url": {
262 | "raw": "https://{{base_url}}/address/:address/pfp",
263 | "protocol": "https",
264 | "host": [
265 | "{{base_url}}"
266 | ],
267 | "path": [
268 | "address",
269 | ":address",
270 | "pfp"
271 | ],
272 | "variable": [
273 | {
274 | "key": "address",
275 | "value": "adam"
276 | }
277 | ]
278 | }
279 | },
280 | "status": "OK",
281 | "code": 200,
282 | "_postman_previewlanguage": "json",
283 | "header": [
284 | {
285 | "key": "Date",
286 | "value": "Sun, 11 Sep 2022 16:20:30 GMT"
287 | },
288 | {
289 | "key": "Server",
290 | "value": "Apache"
291 | },
292 | {
293 | "key": "Access-Control-Allow-Origin",
294 | "value": "*"
295 | },
296 | {
297 | "key": "Access-Control-Allow-Methods",
298 | "value": "GET,POST,OPTIONS,DELETE,PUT"
299 | },
300 | {
301 | "key": "Access-Control-Allow-Headers",
302 | "value": "Authorization"
303 | },
304 | {
305 | "key": "Content-Length",
306 | "value": "159"
307 | },
308 | {
309 | "key": "Keep-Alive",
310 | "value": "timeout=5, max=100"
311 | },
312 | {
313 | "key": "Connection",
314 | "value": "Keep-Alive"
315 | },
316 | {
317 | "key": "Content-Type",
318 | "value": "text/json;charset=UTF-8"
319 | }
320 | ],
321 | "cookie": [],
322 | "body": "{\n \"request\": {\n \"status_code\": 200,\n \"success\": true\n },\n \"response\": {\n \"message\": \"We received 2891341 bytes of data.\"\n }\n}"
323 | }
324 | ]
325 | }
326 | ]
327 | }
--------------------------------------------------------------------------------