Cleaning up.
This commit is contained in:
parent
9832dc12cf
commit
4b629f2670
95
.gitignore.orig
Normal file
95
.gitignore.orig
Normal file
@ -0,0 +1,95 @@
|
||||
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
||||
#
|
||||
# If you find yourself ignoring temporary files generated by your text editor
|
||||
# or operating system, you probably want to add a global ignore instead:
|
||||
# git config --global core.excludesfile '~/.gitignore_global'
|
||||
|
||||
# Ignore bundler config and downloaded libraries.
|
||||
/.bundle
|
||||
/vendor/bundle
|
||||
|
||||
# Ignore the default SQLite database.
|
||||
/db/*.sqlite3
|
||||
/db/*.sqlite3-journal
|
||||
|
||||
# Ignore all logfiles and tempfiles.
|
||||
.eslintcache
|
||||
/log/*
|
||||
!/log/.keep
|
||||
/tmp
|
||||
/coverage
|
||||
/public/system
|
||||
/public/assets
|
||||
/public/packs
|
||||
/public/packs-dev
|
||||
/public/packs-test
|
||||
stats.html
|
||||
.env
|
||||
.env.production
|
||||
<<<<<<< HEAD
|
||||
node_modules/
|
||||
=======
|
||||
.env.development
|
||||
/node_modules/
|
||||
>>>>>>> c7a554f9cb (Wobbl customizations on Glitch-SOC)
|
||||
/build/
|
||||
|
||||
# Ignore Vagrant files
|
||||
.vagrant/
|
||||
|
||||
# Ignore IDE files
|
||||
.vscode/
|
||||
.idea/
|
||||
|
||||
# Ignore postgres + redis + elasticsearch volume optionally created by docker-compose
|
||||
/postgres
|
||||
/postgres14
|
||||
/redis
|
||||
/elasticsearch
|
||||
|
||||
# Ignore Apple files
|
||||
.DS_Store
|
||||
|
||||
# Ignore vim files
|
||||
*~
|
||||
*.swp
|
||||
|
||||
# Ignore npm debug log
|
||||
npm-debug.log
|
||||
|
||||
# Ignore yarn log files
|
||||
yarn-error.log
|
||||
yarn-debug.log
|
||||
|
||||
# From https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
|
||||
.pnp.*
|
||||
.yarn/*
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
|
||||
# Ignore vagrant log files
|
||||
*-cloudimg-console.log
|
||||
|
||||
# Ignore Docker option files
|
||||
docker-compose.override.yml
|
||||
|
||||
<<<<<<< HEAD
|
||||
# Ignore dotenv .local files
|
||||
.env*.local
|
||||
|
||||
# Ignore local-only rspec configuration
|
||||
.rspec-local
|
||||
|
||||
*storybook.log
|
||||
storybook-static
|
||||
=======
|
||||
/public/packs
|
||||
/public/packs-test
|
||||
/node_modules
|
||||
/yarn-error.log
|
||||
yarn-debug.log*
|
||||
.yarn-integrity
|
||||
>>>>>>> c7a554f9cb (Wobbl customizations on Glitch-SOC)
|
||||
@ -1,8 +0,0 @@
|
||||
import 'packs/public-path';
|
||||
import Rails from '@rails/ujs';
|
||||
import 'flavours/glitch/styles/modern.scss';
|
||||
|
||||
start();
|
||||
|
||||
// This ensures that webpack compiles our images.
|
||||
require.context('../images', true);
|
||||
@ -1,5 +0,0 @@
|
||||
@import 'index';
|
||||
|
||||
@import 'modern/modern';
|
||||
|
||||
@import 'modern/diff';
|
||||
@ -1,295 +0,0 @@
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.compose-form__autosuggest-wrapper
|
||||
> :last-child {
|
||||
padding-bottom: 2em !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .compose-form__buttons {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.compose-form__buttons
|
||||
> div:last-child {
|
||||
margin-inline-start: auto;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .compose-form__buttons-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .character-counter__wrapper {
|
||||
position: absolute;
|
||||
inset-inline-end: 0;
|
||||
bottom: 100%;
|
||||
margin: 4px;
|
||||
border-radius: 6px;
|
||||
padding: 0.1em 0.5em;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.character-counter__wrapper
|
||||
span {
|
||||
font-size: 0.9em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .collapsed .status__content {
|
||||
height: auto !important;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.collapsed
|
||||
.status__content
|
||||
.status__content__text {
|
||||
mask: linear-gradient(to bottom, #000 50px, transparent) !important;
|
||||
-webkit-mask: linear-gradient(to bottom, #000 50px, transparent) !important;
|
||||
max-height: 100px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.collapsed
|
||||
.status__content
|
||||
p:not(:last-child) {
|
||||
margin-bottom: 0.4em;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .collapsed .status__content br {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.collapsed
|
||||
.status__content::after {
|
||||
content: unset;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.collapsed.muted
|
||||
.status__content__text
|
||||
~ * {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status:not(.status-direct)
|
||||
> .status__content {
|
||||
margin-block: -90px -100px !important;
|
||||
padding-block: 100px !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status:not(.status-direct)
|
||||
> .status__content
|
||||
.status__content__text {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status:not(.status-direct)
|
||||
> .status__content
|
||||
> :last-child:not(.status__content__text) {
|
||||
margin-bottom: 5px !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .status .full-width {
|
||||
margin-inline: 0 !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .status .status__action-bar {
|
||||
position: static;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status__info
|
||||
.notification__message {
|
||||
padding-top: 0 !important;
|
||||
padding-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .status__display-name {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .display-name__account {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.media-gallery__item
|
||||
> .media-gallery__preview {
|
||||
display: unset;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .status__action-bar-spacer {
|
||||
min-width: 5px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .status__relative-time {
|
||||
margin-inline: auto 5px !important;
|
||||
z-index: 2;
|
||||
flex-grow: 0 !important;
|
||||
min-width: 5ch !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .reactions-bar {
|
||||
width: unset;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .reactions-bar button {
|
||||
border-radius: 6px !important;
|
||||
padding-block: 2px;
|
||||
}
|
||||
@media (pointer: coarse) {
|
||||
body.app-body.flavour-modern-glitch > #mastodon .reactions-bar button {
|
||||
padding: 4px 8px !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.reactions-bar
|
||||
button
|
||||
.reactions-bar__item__emoji {
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .reactions-bar:empty {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.collapsed
|
||||
> .status__info
|
||||
.notification__message {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.notification
|
||||
> .notification__message {
|
||||
padding-inline: 15px !important;
|
||||
padding-top: 18px !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .notification .account {
|
||||
padding-inline-start: 0 !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.notification__favourite-icon-wrapper {
|
||||
position: static;
|
||||
margin-inline-end: 10px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.notification__favourite-icon-wrapper
|
||||
i {
|
||||
width: 1.28571429em !important;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .status__prepend,
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status__info
|
||||
.notification__message {
|
||||
padding-bottom: 15px !important;
|
||||
padding-top: 0 !important;
|
||||
margin-top: -5px !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status__prepend
|
||||
.status__prepend-icon-wrapper,
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status__info
|
||||
.notification__message
|
||||
.status__prepend-icon-wrapper {
|
||||
all: unset;
|
||||
margin-inline-end: 10px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status__prepend
|
||||
.status__prepend-icon-wrapper
|
||||
i,
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.status__info
|
||||
.notification__message
|
||||
.status__prepend-icon-wrapper
|
||||
i {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.detailed-status__wrapper
|
||||
.focusable:not(.status)::before {
|
||||
content: unset !important;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .setting-text {
|
||||
border-radius: 0 !important;
|
||||
margin: 4px;
|
||||
width: calc(100% - 8px);
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .column-settings__pillbar {
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch > #mastodon .pillbar-button {
|
||||
border-radius: 0 !important;
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.account-card
|
||||
.media-modal__close {
|
||||
left: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
body.app-body.flavour-modern-glitch
|
||||
> #mastodon
|
||||
.account-card
|
||||
.media-modal__close::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: -60px -30px;
|
||||
background: linear-gradient(to right, #000, transparent);
|
||||
transform: rotate(45deg);
|
||||
z-index: -1;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.layout-multiple-columns.flavour-modern-glitch .drawer__inner {
|
||||
margin-top: -10px;
|
||||
padding-top: 30px !important;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
@import 'wobbl-light/variables';
|
||||
@import 'index';
|
||||
@import 'mastodon-light/diff';
|
||||
@ -1,60 +0,0 @@
|
||||
// Dependent colors
|
||||
$black: #000000;
|
||||
$white: #ffffff;
|
||||
|
||||
$classic-base-color: #191919;
|
||||
$classic-primary-color: #e7e7e7;
|
||||
$classic-secondary-color: #ff8680;
|
||||
$classic-highlight-color: #850700;
|
||||
|
||||
$blurple-600: #cc3939; // Iris
|
||||
$blurple-500: #850700; // Brand purple
|
||||
$blurple-300: #fa8484; // Faded Blue
|
||||
$grey-600: #4e4c5a; // Trout
|
||||
$grey-100: #dadaf3; // Topaz
|
||||
|
||||
// Differences
|
||||
$success-green: lighten(#3c754d, 8%);
|
||||
|
||||
$base-overlay-background: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
|
||||
$ui-base-color: $classic-primary-color !default;
|
||||
$ui-base-lighter-color: #b0c0cf;
|
||||
$ui-primary-color: #9bcbed;
|
||||
$ui-secondary-color: $classic-base-color !default;
|
||||
$ui-highlight-color: $classic-highlight-color !default;
|
||||
$ui-button-color: $white !default;
|
||||
$ui-button-background-color: $blurple-500 !default;
|
||||
$ui-button-focus-background-color: $blurple-600 !default;
|
||||
|
||||
$ui-button-secondary-color: $grey-600 !default;
|
||||
$ui-button-secondary-border-color: $grey-600 !default;
|
||||
$ui-button-secondary-focus-color: $white !default;
|
||||
|
||||
$ui-button-tertiary-color: $blurple-500 !default;
|
||||
$ui-button-tertiary-border-color: $blurple-500 !default;
|
||||
|
||||
$primary-text-color: $black !default;
|
||||
$darker-text-color: $classic-base-color !default;
|
||||
$highlight-text-color: darken($ui-highlight-color, 8%) !default;
|
||||
$dark-text-color: #444b5d;
|
||||
$action-button-color: #606984;
|
||||
|
||||
$inverted-text-color: $black !default;
|
||||
$lighter-text-color: $classic-base-color !default;
|
||||
$light-text-color: #444b5d;
|
||||
|
||||
// Newly added colors
|
||||
$account-background-color: $white !default;
|
||||
|
||||
// Invert darkened and lightened colors
|
||||
@function darken($color, $amount) {
|
||||
@return hsl(hue($color), saturation($color), lightness($color) + $amount);
|
||||
}
|
||||
|
||||
@function lighten($color, $amount) {
|
||||
@return hsl(hue($color), saturation($color), lightness($color) - $amount);
|
||||
}
|
||||
|
||||
$emojis-requiring-inversion: 'chains';
|
||||
@ -1,101 +0,0 @@
|
||||
// Commonly used web colors
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$red-600: #b7253d !default; // Deep Carmine
|
||||
$red-500: #df405a !default; // Cerise
|
||||
$blurple-600: #563acc; // Iris
|
||||
$blurple-500: #6364ff; // Brand purple
|
||||
$blurple-300: #858afa; // Faded Blue
|
||||
$grey-600: #4e4c5a; // Trout
|
||||
$grey-100: #dadaf3; // Topaz
|
||||
|
||||
$success-green: #79bd9a !default; // Padua
|
||||
$error-red: $red-500 !default; // Cerise
|
||||
$warning-red: #ff5050 !default; // Sunset Orange
|
||||
$gold-star: #ca8f04 !default; // Dark Goldenrod
|
||||
|
||||
$red-bookmark: $warning-red;
|
||||
|
||||
// Values from the classic Mastodon UI
|
||||
$classic-base-color: #191919;// Dark Gray
|
||||
$classic-primary-color: #E7E7E7;// Platinum
|
||||
$classic-secondary-color: #FF8680; // Paler red
|
||||
$classic-highlight-color: #850700; // Red highlights
|
||||
|
||||
// Variables for defaults in UI
|
||||
$base-shadow-color: $black !default;
|
||||
$base-overlay-background: $black !default;
|
||||
$base-border-color: $white !default;
|
||||
$simple-background-color: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
$error-value-color: $error-red !default;
|
||||
|
||||
// Tell UI to use selected colors
|
||||
$ui-base-color: $classic-base-color !default; // Darkest
|
||||
$ui-base-lighter-color: lighten(
|
||||
$ui-base-color,
|
||||
26%
|
||||
) !default; // Lighter darkest
|
||||
$ui-primary-color: $classic-primary-color !default; // Lighter
|
||||
$ui-secondary-color: $classic-secondary-color !default; // Lightest
|
||||
$ui-highlight-color: $classic-highlight-color !default;
|
||||
$ui-button-color: $white !default;
|
||||
$ui-button-background-color: $blurple-500 !default;
|
||||
$ui-button-focus-background-color: $blurple-600 !default;
|
||||
|
||||
$ui-button-secondary-color: $grey-100 !default;
|
||||
$ui-button-secondary-border-color: $grey-100 !default;
|
||||
$ui-button-secondary-focus-background-color: $grey-600 !default;
|
||||
$ui-button-secondary-focus-color: $white !default;
|
||||
|
||||
$ui-button-tertiary-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-border-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-focus-background-color: $blurple-600 !default;
|
||||
$ui-button-tertiary-focus-color: $white !default;
|
||||
|
||||
$ui-button-destructive-background-color: $red-500 !default;
|
||||
$ui-button-destructive-focus-background-color: $red-600 !default;
|
||||
|
||||
// Variables for texts
|
||||
$primary-text-color: $white !default;
|
||||
$darker-text-color: $ui-primary-color !default;
|
||||
$dark-text-color: $ui-base-lighter-color !default;
|
||||
$secondary-text-color: $ui-secondary-color !default;
|
||||
$highlight-text-color: lighten($ui-highlight-color, 8%) !default;
|
||||
$action-button-color: $ui-base-lighter-color !default;
|
||||
$action-button-focus-color: lighten($ui-base-lighter-color, 4%) !default;
|
||||
$passive-text-color: $gold-star !default;
|
||||
$active-passive-text-color: $success-green !default;
|
||||
|
||||
// For texts on inverted backgrounds
|
||||
$inverted-text-color: $ui-base-color !default;
|
||||
$lighter-text-color: $ui-base-lighter-color !default;
|
||||
$light-text-color: $ui-primary-color !default;
|
||||
|
||||
// Language codes that uses CJK fonts
|
||||
$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
|
||||
|
||||
// Variables for components
|
||||
$media-modal-media-max-width: 100%;
|
||||
|
||||
// put margins on top and bottom of image to avoid the screen covered by image.
|
||||
$media-modal-media-max-height: 80%;
|
||||
|
||||
$no-gap-breakpoint: 1175px;
|
||||
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
$font-monospace: 'mastodon-font-monospace' !default;
|
||||
|
||||
// Avatar border size (8% default, 100% for rounded avatars)
|
||||
$ui-avatar-border-size: 8%;
|
||||
|
||||
// More variables
|
||||
$dismiss-overlay-width: 4rem;
|
||||
|
||||
:root {
|
||||
--dropdown-border-color: #{lighten($ui-base-color, 12%)};
|
||||
--dropdown-background-color: #{lighten($ui-base-color, 4%)};
|
||||
--dropdown-shadow: 0 20px 25px -5px #{rgba($base-shadow-color, 0.25)},
|
||||
0 8px 10px -6px #{rgba($base-shadow-color, 0.25)};
|
||||
}
|
||||
@ -1,3 +0,0 @@
|
||||
@import 'wobbl-old-light/variables';
|
||||
@import 'index';
|
||||
@import 'mastodon-light/diff';
|
||||
@ -1,60 +0,0 @@
|
||||
// Dependent colors
|
||||
$black: #000000;
|
||||
$white: #ffffff;
|
||||
|
||||
$classic-base-color: #191918;
|
||||
$classic-primary-color: #e7e7e7;
|
||||
$classic-secondary-color: #8c562a;
|
||||
$classic-highlight-color: #c45302;
|
||||
|
||||
$blurple-600: #c45302; // Iris
|
||||
$blurple-500: #fd8128; // Brand purple
|
||||
$blurple-300: #fda15f; // Faded Blue
|
||||
$grey-600: #4e4c5a; // Trout
|
||||
$grey-100: #dadaf3; // Topaz
|
||||
|
||||
// Differences
|
||||
$success-green: lighten(#3c754d, 8%);
|
||||
|
||||
$base-overlay-background: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
|
||||
$ui-base-color: $classic-primary-color !default;
|
||||
$ui-base-lighter-color: #b0c0cf;
|
||||
$ui-primary-color: #9bcbed;
|
||||
$ui-secondary-color: $classic-base-color !default;
|
||||
$ui-highlight-color: $classic-highlight-color !default;
|
||||
$ui-button-color: $white !default;
|
||||
$ui-button-background-color: $blurple-500 !default;
|
||||
$ui-button-focus-background-color: $blurple-600 !default;
|
||||
|
||||
$ui-button-secondary-color: $grey-600 !default;
|
||||
$ui-button-secondary-border-color: $grey-600 !default;
|
||||
$ui-button-secondary-focus-color: $white !default;
|
||||
|
||||
$ui-button-tertiary-color: $blurple-500 !default;
|
||||
$ui-button-tertiary-border-color: $blurple-500 !default;
|
||||
|
||||
$primary-text-color: $black !default;
|
||||
$darker-text-color: $classic-base-color !default;
|
||||
$highlight-text-color: darken($ui-highlight-color, 8%) !default;
|
||||
$dark-text-color: #444b5d;
|
||||
$action-button-color: #606984;
|
||||
|
||||
$inverted-text-color: $black !default;
|
||||
$lighter-text-color: $classic-base-color !default;
|
||||
$light-text-color: #444b5d;
|
||||
|
||||
// Newly added colors
|
||||
$account-background-color: $white !default;
|
||||
|
||||
// Invert darkened and lightened colors
|
||||
@function darken($color, $amount) {
|
||||
@return hsl(hue($color), saturation($color), lightness($color) + $amount);
|
||||
}
|
||||
|
||||
@function lighten($color, $amount) {
|
||||
@return hsl(hue($color), saturation($color), lightness($color) - $amount);
|
||||
}
|
||||
|
||||
$emojis-requiring-inversion: 'chains';
|
||||
@ -1,101 +0,0 @@
|
||||
// Commonly used web colors
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$red-600: #b7253d !default; // Deep Carmine
|
||||
$red-500: #df405a !default; // Cerise
|
||||
$blurple-600: #563acc; // Iris
|
||||
$blurple-500: #6364ff; // Brand purple
|
||||
$blurple-300: #858afa; // Faded Blue
|
||||
$grey-600: #4e4c5a; // Trout
|
||||
$grey-100: #dadaf3; // Topaz
|
||||
|
||||
$success-green: #79bd9a !default; // Padua
|
||||
$error-red: $red-500 !default; // Cerise
|
||||
$warning-red: #ff5050 !default; // Sunset Orange
|
||||
$gold-star: #ca8f04 !default; // Dark Goldenrod
|
||||
|
||||
$red-bookmark: $warning-red;
|
||||
|
||||
// Values from the classic Mastodon UI
|
||||
$classic-base-color: #191919;// Dark Gray
|
||||
$classic-primary-color: #E7E7E7;// Platinum
|
||||
$classic-secondary-color: #FF8680; // Paler red
|
||||
$classic-highlight-color: #850700; // Red highlights
|
||||
|
||||
// Variables for defaults in UI
|
||||
$base-shadow-color: $black !default;
|
||||
$base-overlay-background: $black !default;
|
||||
$base-border-color: $white !default;
|
||||
$simple-background-color: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
$error-value-color: $error-red !default;
|
||||
|
||||
// Tell UI to use selected colors
|
||||
$ui-base-color: $classic-base-color !default; // Darkest
|
||||
$ui-base-lighter-color: lighten(
|
||||
$ui-base-color,
|
||||
26%
|
||||
) !default; // Lighter darkest
|
||||
$ui-primary-color: $classic-primary-color !default; // Lighter
|
||||
$ui-secondary-color: $classic-secondary-color !default; // Lightest
|
||||
$ui-highlight-color: $classic-highlight-color !default;
|
||||
$ui-button-color: $white !default;
|
||||
$ui-button-background-color: $blurple-500 !default;
|
||||
$ui-button-focus-background-color: $blurple-600 !default;
|
||||
|
||||
$ui-button-secondary-color: $grey-100 !default;
|
||||
$ui-button-secondary-border-color: $grey-100 !default;
|
||||
$ui-button-secondary-focus-background-color: $grey-600 !default;
|
||||
$ui-button-secondary-focus-color: $white !default;
|
||||
|
||||
$ui-button-tertiary-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-border-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-focus-background-color: $blurple-600 !default;
|
||||
$ui-button-tertiary-focus-color: $white !default;
|
||||
|
||||
$ui-button-destructive-background-color: $red-500 !default;
|
||||
$ui-button-destructive-focus-background-color: $red-600 !default;
|
||||
|
||||
// Variables for texts
|
||||
$primary-text-color: $white !default;
|
||||
$darker-text-color: $ui-primary-color !default;
|
||||
$dark-text-color: $ui-base-lighter-color !default;
|
||||
$secondary-text-color: $ui-secondary-color !default;
|
||||
$highlight-text-color: lighten($ui-highlight-color, 8%) !default;
|
||||
$action-button-color: $ui-base-lighter-color !default;
|
||||
$action-button-focus-color: lighten($ui-base-lighter-color, 4%) !default;
|
||||
$passive-text-color: $gold-star !default;
|
||||
$active-passive-text-color: $success-green !default;
|
||||
|
||||
// For texts on inverted backgrounds
|
||||
$inverted-text-color: $ui-base-color !default;
|
||||
$lighter-text-color: $ui-base-lighter-color !default;
|
||||
$light-text-color: $ui-primary-color !default;
|
||||
|
||||
// Language codes that uses CJK fonts
|
||||
$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
|
||||
|
||||
// Variables for components
|
||||
$media-modal-media-max-width: 100%;
|
||||
|
||||
// put margins on top and bottom of image to avoid the screen covered by image.
|
||||
$media-modal-media-max-height: 80%;
|
||||
|
||||
$no-gap-breakpoint: 1175px;
|
||||
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
$font-monospace: 'mastodon-font-monospace' !default;
|
||||
|
||||
// Avatar border size (8% default, 100% for rounded avatars)
|
||||
$ui-avatar-border-size: 8%;
|
||||
|
||||
// More variables
|
||||
$dismiss-overlay-width: 4rem;
|
||||
|
||||
:root {
|
||||
--dropdown-border-color: #{lighten($ui-base-color, 12%)};
|
||||
--dropdown-background-color: #{lighten($ui-base-color, 4%)};
|
||||
--dropdown-shadow: 0 20px 25px -5px #{rgba($base-shadow-color, 0.25)},
|
||||
0 8px 10px -6px #{rgba($base-shadow-color, 0.25)};
|
||||
}
|
||||
@ -1,2 +0,0 @@
|
||||
@import 'wobbl-old/variables';
|
||||
@import 'index';
|
||||
@ -1,101 +0,0 @@
|
||||
// Commonly used web colors
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$red-600: #b7253d !default; // Deep Carmine
|
||||
$red-500: #df405a !default; // Cerise
|
||||
$blurple-600: #c45302; // Iris
|
||||
$blurple-500: #fd8128; // Brand purple
|
||||
$blurple-300: #fda15f; // Faded Blue
|
||||
$grey-600: #4e4c5a; // Trout
|
||||
$grey-100: #dadaf3; // Topaz
|
||||
|
||||
$success-green: #79bd9a !default; // Padua
|
||||
$error-red: $red-500 !default; // Cerise
|
||||
$warning-red: #ff5050 !default; // Sunset Orange
|
||||
$gold-star: #ca8f04 !default; // Dark Goldenrod
|
||||
|
||||
$red-bookmark: $warning-red;
|
||||
|
||||
// Values from the classic Mastodon UI
|
||||
$classic-base-color: #37210f; // Dark Gray
|
||||
$classic-primary-color: #e7e7e7; // Platinum
|
||||
$classic-secondary-color: #e7e7e7; // Paler red
|
||||
$classic-highlight-color: #c45302; // Red highlights
|
||||
|
||||
// Variables for defaults in UI
|
||||
$base-shadow-color: $black !default;
|
||||
$base-overlay-background: $black !default;
|
||||
$base-border-color: $white !default;
|
||||
$simple-background-color: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
$error-value-color: $error-red !default;
|
||||
|
||||
// Tell UI to use selected colors
|
||||
$ui-base-color: $classic-base-color !default; // Darkest
|
||||
$ui-base-lighter-color: lighten(
|
||||
$ui-base-color,
|
||||
26%
|
||||
) !default; // Lighter darkest
|
||||
$ui-primary-color: $classic-primary-color !default; // Lighter
|
||||
$ui-secondary-color: $classic-secondary-color !default; // Lightest
|
||||
$ui-highlight-color: $classic-highlight-color !default;
|
||||
$ui-button-color: $white !default;
|
||||
$ui-button-background-color: $blurple-500 !default;
|
||||
$ui-button-focus-background-color: $blurple-600 !default;
|
||||
|
||||
$ui-button-secondary-color: $grey-100 !default;
|
||||
$ui-button-secondary-border-color: $grey-100 !default;
|
||||
$ui-button-secondary-focus-background-color: $grey-600 !default;
|
||||
$ui-button-secondary-focus-color: $white !default;
|
||||
|
||||
$ui-button-tertiary-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-border-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-focus-background-color: $blurple-600 !default;
|
||||
$ui-button-tertiary-focus-color: $white !default;
|
||||
|
||||
$ui-button-destructive-background-color: $red-500 !default;
|
||||
$ui-button-destructive-focus-background-color: $red-600 !default;
|
||||
|
||||
// Variables for texts
|
||||
$primary-text-color: $white !default;
|
||||
$darker-text-color: $ui-primary-color !default;
|
||||
$dark-text-color: $ui-base-lighter-color !default;
|
||||
$secondary-text-color: $ui-secondary-color !default;
|
||||
$highlight-text-color: lighten($ui-highlight-color, 8%) !default;
|
||||
$action-button-color: $ui-base-lighter-color !default;
|
||||
$action-button-focus-color: lighten($ui-base-lighter-color, 4%) !default;
|
||||
$passive-text-color: $gold-star !default;
|
||||
$active-passive-text-color: $success-green !default;
|
||||
|
||||
// For texts on inverted backgrounds
|
||||
$inverted-text-color: $ui-base-color !default;
|
||||
$lighter-text-color: $ui-base-lighter-color !default;
|
||||
$light-text-color: $ui-primary-color !default;
|
||||
|
||||
// Language codes that uses CJK fonts
|
||||
$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
|
||||
|
||||
// Variables for components
|
||||
$media-modal-media-max-width: 100%;
|
||||
|
||||
// put margins on top and bottom of image to avoid the screen covered by image.
|
||||
$media-modal-media-max-height: 80%;
|
||||
|
||||
$no-gap-breakpoint: 1175px;
|
||||
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
$font-monospace: 'mastodon-font-monospace' !default;
|
||||
|
||||
// Avatar border size (8% default, 100% for rounded avatars)
|
||||
$ui-avatar-border-size: 8%;
|
||||
|
||||
// More variables
|
||||
$dismiss-overlay-width: 4rem;
|
||||
|
||||
:root {
|
||||
--dropdown-border-color: #{lighten($ui-base-color, 12%)};
|
||||
--dropdown-background-color: #{lighten($ui-base-color, 4%)};
|
||||
--dropdown-shadow: 0 20px 25px -5px #{rgba($base-shadow-color, 0.25)},
|
||||
0 8px 10px -6px #{rgba($base-shadow-color, 0.25)};
|
||||
}
|
||||
@ -1,2 +0,0 @@
|
||||
@import 'wobbl/variables';
|
||||
@import 'index';
|
||||
@ -1,101 +0,0 @@
|
||||
// Commonly used web colors
|
||||
$black: #000000; // Black
|
||||
$white: #ffffff; // White
|
||||
$red-600: #b7253d !default; // Deep Carmine
|
||||
$red-500: #df405a !default; // Cerise
|
||||
$blurple-600: #cc3939; // Iris
|
||||
$blurple-500: #850700; // Brand purple
|
||||
$blurple-300: #fa8484; // Faded Blue
|
||||
$grey-600: #4e4c5a; // Trout
|
||||
$grey-100: #dadaf3; // Topaz
|
||||
|
||||
$success-green: #79bd9a !default; // Padua
|
||||
$error-red: $red-500 !default; // Cerise
|
||||
$warning-red: #ff5050 !default; // Sunset Orange
|
||||
$gold-star: #ca8f04 !default; // Dark Goldenrod
|
||||
|
||||
$red-bookmark: $warning-red;
|
||||
|
||||
// Values from the classic Mastodon UI
|
||||
$classic-base-color: #191919; // Dark Gray
|
||||
$classic-primary-color: #e7e7e7; // Platinum
|
||||
$classic-secondary-color: #ff8680; // Paler red
|
||||
$classic-highlight-color: #850700; // Red highlights
|
||||
|
||||
// Variables for defaults in UI
|
||||
$base-shadow-color: $black !default;
|
||||
$base-overlay-background: $black !default;
|
||||
$base-border-color: $white !default;
|
||||
$simple-background-color: $white !default;
|
||||
$valid-value-color: $success-green !default;
|
||||
$error-value-color: $error-red !default;
|
||||
|
||||
// Tell UI to use selected colors
|
||||
$ui-base-color: $classic-base-color !default; // Darkest
|
||||
$ui-base-lighter-color: lighten(
|
||||
$ui-base-color,
|
||||
26%
|
||||
) !default; // Lighter darkest
|
||||
$ui-primary-color: $classic-primary-color !default; // Lighter
|
||||
$ui-secondary-color: $classic-secondary-color !default; // Lightest
|
||||
$ui-highlight-color: $classic-highlight-color !default;
|
||||
$ui-button-color: $white !default;
|
||||
$ui-button-background-color: $blurple-500 !default;
|
||||
$ui-button-focus-background-color: $blurple-600 !default;
|
||||
|
||||
$ui-button-secondary-color: $grey-100 !default;
|
||||
$ui-button-secondary-border-color: $grey-100 !default;
|
||||
$ui-button-secondary-focus-background-color: $grey-600 !default;
|
||||
$ui-button-secondary-focus-color: $white !default;
|
||||
|
||||
$ui-button-tertiary-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-border-color: $blurple-300 !default;
|
||||
$ui-button-tertiary-focus-background-color: $blurple-600 !default;
|
||||
$ui-button-tertiary-focus-color: $white !default;
|
||||
|
||||
$ui-button-destructive-background-color: $red-500 !default;
|
||||
$ui-button-destructive-focus-background-color: $red-600 !default;
|
||||
|
||||
// Variables for texts
|
||||
$primary-text-color: $white !default;
|
||||
$darker-text-color: $ui-primary-color !default;
|
||||
$dark-text-color: $ui-base-lighter-color !default;
|
||||
$secondary-text-color: $ui-secondary-color !default;
|
||||
$highlight-text-color: lighten($ui-highlight-color, 8%) !default;
|
||||
$action-button-color: $ui-base-lighter-color !default;
|
||||
$action-button-focus-color: lighten($ui-base-lighter-color, 4%) !default;
|
||||
$passive-text-color: $gold-star !default;
|
||||
$active-passive-text-color: $success-green !default;
|
||||
|
||||
// For texts on inverted backgrounds
|
||||
$inverted-text-color: $ui-base-color !default;
|
||||
$lighter-text-color: $ui-base-lighter-color !default;
|
||||
$light-text-color: $ui-primary-color !default;
|
||||
|
||||
// Language codes that uses CJK fonts
|
||||
$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
|
||||
|
||||
// Variables for components
|
||||
$media-modal-media-max-width: 100%;
|
||||
|
||||
// put margins on top and bottom of image to avoid the screen covered by image.
|
||||
$media-modal-media-max-height: 80%;
|
||||
|
||||
$no-gap-breakpoint: 1175px;
|
||||
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
$font-monospace: 'mastodon-font-monospace' !default;
|
||||
|
||||
// Avatar border size (8% default, 100% for rounded avatars)
|
||||
$ui-avatar-border-size: 8%;
|
||||
|
||||
// More variables
|
||||
$dismiss-overlay-width: 4rem;
|
||||
|
||||
:root {
|
||||
--dropdown-border-color: #{lighten($ui-base-color, 12%)};
|
||||
--dropdown-background-color: #{lighten($ui-base-color, 4%)};
|
||||
--dropdown-shadow: 0 20px 25px -5px #{rgba($base-shadow-color, 0.25)},
|
||||
0 8px 10px -6px #{rgba($base-shadow-color, 0.25)};
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
en:
|
||||
flavours:
|
||||
modern-glitch:
|
||||
description: Modern Mastodon theme - with Glitch-SOC support
|
||||
name: Modern - Glitch
|
||||
skins:
|
||||
modern-glitch:
|
||||
default: Default
|
||||
@ -1,49 +0,0 @@
|
||||
# (REQUIRED) The location of the pack files.
|
||||
pack:
|
||||
admin:
|
||||
- packs/admin.jsx
|
||||
- packs/public.jsx
|
||||
auth: packs/public.jsx
|
||||
common:
|
||||
filename: packs/common-modern.js
|
||||
stylesheet: true
|
||||
embed: packs/public.jsx
|
||||
error: packs/error.js
|
||||
home:
|
||||
filename: packs/home.js
|
||||
preload:
|
||||
- flavours/glitch/async/compose
|
||||
- flavours/glitch/async/getting_started
|
||||
- flavours/glitch/async/home_timeline
|
||||
- flavours/glitch/async/notifications
|
||||
mailer:
|
||||
modal:
|
||||
public: packs/public.jsx
|
||||
settings: packs/settings.js
|
||||
sign_up: packs/sign_up.js
|
||||
share: packs/share.jsx
|
||||
|
||||
# (OPTIONAL) The directory which contains localization files for
|
||||
# the flavour, relative to this directory. The contents of this
|
||||
# directory must be `.json` files whose names correspond to
|
||||
# language tags and whose default exports are a messages object.
|
||||
locales: locales
|
||||
|
||||
# (OPTIONAL) Which flavour to inherit locales from
|
||||
inherit_locales: vanilla
|
||||
|
||||
# (OPTIONAL) A file to use as the preview screenshot for the flavour,
|
||||
# or an array thereof. These are the full path from `app/javascript/`.
|
||||
screenshot: flavours/glitch/images/modern-preview.jpg
|
||||
|
||||
# (OPTIONAL) The directory which contains the pack files.
|
||||
# Defaults to the theme directory (`app/javascript/themes/[theme]`),
|
||||
# which should be sufficient for like 99% of use-cases lol.
|
||||
|
||||
pack_directory: app/javascript/flavours/glitch
|
||||
|
||||
# (OPTIONAL) By default the theme will fallback to the default theme
|
||||
# if a particular pack is not provided. You can specify different
|
||||
# fallbacks here, or disable fallback behaviours altogether by
|
||||
# specifying a `null` value.
|
||||
fallback:
|
||||
@ -1 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl-light';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
glitch:
|
||||
wobbl-light: Wobbl (light)
|
||||
@ -1 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl-old-light';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
glitch:
|
||||
wobbl-old-light: Wobbl Orange (light)
|
||||
@ -1 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl-old';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
glitch:
|
||||
wobbl-old: Wobbl Orange
|
||||
@ -1 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
glitch:
|
||||
wobbl: Wobbl
|
||||
@ -1,3 +0,0 @@
|
||||
@import 'flavours/glitch/styles/mastodon-light/variables';
|
||||
@import 'flavours/glitch/styles/modern';
|
||||
@import 'flavours/glitch/styles/mastodon-light/diff';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
modern-glitch:
|
||||
modern-light: Default (light)
|
||||
@ -1,3 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl-light/variables';
|
||||
@import 'flavours/glitch/styles/modern';
|
||||
@import 'flavours/glitch/styles/mastodon-light/diff';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
modern-glitch:
|
||||
wobbl-modern-light: Wobbl Red (light)
|
||||
@ -1,2 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl/variables';
|
||||
@import 'flavours/glitch/styles/modern';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
modern-glitch:
|
||||
wobbl-modern: Wobbl Red
|
||||
@ -1,3 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl-old-light/variables';
|
||||
@import 'flavours/glitch/styles/modern';
|
||||
@import 'flavours/glitch/styles/mastodon-light/diff';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
modern-glitch:
|
||||
wobbl-old-modern-light: Wobbl Orange (light)
|
||||
@ -1,2 +0,0 @@
|
||||
@import 'flavours/glitch/styles/wobbl-old/variables';
|
||||
@import 'flavours/glitch/styles/modern';
|
||||
@ -1,4 +0,0 @@
|
||||
en:
|
||||
skins:
|
||||
modern-glitch:
|
||||
wobbl-old-modern: Wobbl Orange
|
||||
178
app/serializers/rest/instance_serializer.rb.orig
Normal file
178
app/serializers/rest/instance_serializer.rb.orig
Normal file
@ -0,0 +1,178 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class REST::InstanceSerializer < ActiveModel::Serializer
|
||||
class ContactSerializer < ActiveModel::Serializer
|
||||
attributes :email
|
||||
|
||||
has_one :account, serializer: REST::AccountSerializer
|
||||
end
|
||||
|
||||
include InstanceHelper
|
||||
include RoutingHelper
|
||||
|
||||
attributes :domain, :title, :version, :source_url, :description,
|
||||
<<<<<<< HEAD
|
||||
:usage, :thumbnail, :icon, :languages, :configuration,
|
||||
:registrations, :api_versions, :wrapstodon
|
||||
=======
|
||||
:usage, :thumbnail, :languages, :configuration,
|
||||
:registrations, :max_toot_chars
|
||||
>>>>>>> 02f81fb4b7 (Theming and such)
|
||||
|
||||
has_one :contact, serializer: ContactSerializer
|
||||
has_many :rules, serializer: REST::RuleSerializer
|
||||
|
||||
def thumbnail
|
||||
if object.thumbnail
|
||||
{
|
||||
url: full_asset_url(object.thumbnail.file.url(:'@1x')),
|
||||
blurhash: object.thumbnail.blurhash,
|
||||
versions: {
|
||||
'@1x': full_asset_url(object.thumbnail.file.url(:'@1x')),
|
||||
'@2x': full_asset_url(object.thumbnail.file.url(:'@2x')),
|
||||
},
|
||||
description: Setting.thumbnail_description,
|
||||
}
|
||||
else
|
||||
{
|
||||
url: frontend_asset_url('images/preview.png'),
|
||||
description: I18n.t('about.default_thumbnail_description', locale: object.languages[0]),
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def icon
|
||||
SiteUpload::ANDROID_ICON_SIZES.map do |size|
|
||||
src = app_icon_path(size.to_i)
|
||||
src = URI.join(root_url, src).to_s if src.present?
|
||||
|
||||
{
|
||||
src: src || frontend_asset_url("icons/android-chrome-#{size}x#{size}.png"),
|
||||
size: "#{size}x#{size}",
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def usage
|
||||
{
|
||||
users: {
|
||||
active_month: limited_federation? ? 0 : object.active_user_count(4),
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
def configuration
|
||||
{
|
||||
urls: {
|
||||
streaming: Rails.configuration.x.streaming_api_base_url,
|
||||
status: object.status_page_url,
|
||||
about: about_url,
|
||||
privacy_policy: privacy_policy_url,
|
||||
terms_of_service: TermsOfService.current.present? ? terms_of_service_url : nil,
|
||||
},
|
||||
|
||||
vapid: {
|
||||
public_key: Rails.configuration.x.vapid.public_key,
|
||||
},
|
||||
|
||||
accounts: {
|
||||
max_display_name_length: Account::DISPLAY_NAME_LENGTH_LIMIT,
|
||||
max_note_length: Account::NOTE_LENGTH_LIMIT,
|
||||
max_avatar_description_length: Account::Avatar::MAX_DESCRIPTION_LENGTH,
|
||||
max_header_description_length: Account::Header::MAX_DESCRIPTION_LENGTH,
|
||||
max_featured_tags: FeaturedTag::LIMIT,
|
||||
max_pinned_statuses: StatusPinValidator::PIN_LIMIT,
|
||||
max_profile_fields: Account::DEFAULT_FIELDS_SIZE,
|
||||
profile_field_name_limit: Account::Field::MAX_CHARACTERS_LOCAL,
|
||||
profile_field_value_limit: Account::Field::MAX_CHARACTERS_LOCAL,
|
||||
},
|
||||
|
||||
statuses: {
|
||||
max_characters: StatusLengthValidator::MAX_CHARS,
|
||||
max_media_attachments: Status::MEDIA_ATTACHMENTS_LIMIT,
|
||||
characters_reserved_per_url: StatusLengthValidator::URL_PLACEHOLDER_CHARS,
|
||||
supported_mime_types: HtmlAwareFormatter::STATUS_MIME_TYPES,
|
||||
},
|
||||
|
||||
media_attachments: {
|
||||
description_limit: MediaAttachment::MAX_DESCRIPTION_LENGTH,
|
||||
image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT,
|
||||
image_size_limit: MediaAttachment::IMAGE_LIMIT,
|
||||
supported_mime_types: MediaAttachment.supported_mime_types,
|
||||
video_frame_rate_limit: MediaAttachment::MAX_VIDEO_FRAME_RATE,
|
||||
video_matrix_limit: MediaAttachment::MAX_VIDEO_MATRIX_LIMIT,
|
||||
video_size_limit: MediaAttachment::VIDEO_LIMIT,
|
||||
},
|
||||
|
||||
polls: {
|
||||
max_options: PollOptionsValidator::MAX_OPTIONS,
|
||||
max_characters_per_option: PollOptionsValidator::MAX_OPTION_CHARS,
|
||||
min_expiration: PollExpirationValidator::MIN_EXPIRATION,
|
||||
max_expiration: PollExpirationValidator::MAX_EXPIRATION,
|
||||
},
|
||||
|
||||
translation: {
|
||||
enabled: TranslationService.configured?,
|
||||
},
|
||||
|
||||
timelines_access: {
|
||||
live_feeds: {
|
||||
local: Setting.local_live_feed_access,
|
||||
remote: Setting.remote_live_feed_access,
|
||||
},
|
||||
hashtag_feeds: {
|
||||
local: Setting.local_topic_feed_access,
|
||||
remote: Setting.remote_topic_feed_access,
|
||||
},
|
||||
trending_link_feeds: {
|
||||
local: Setting.local_topic_feed_access,
|
||||
remote: Setting.remote_topic_feed_access,
|
||||
},
|
||||
},
|
||||
|
||||
limited_federation: limited_federation?,
|
||||
}
|
||||
end
|
||||
|
||||
def registrations
|
||||
{
|
||||
enabled: registrations_enabled?,
|
||||
approval_required: Setting.registrations_mode == 'approved',
|
||||
reason_required: Setting.registrations_mode == 'approved' && Setting.require_invite_text,
|
||||
message: registrations_enabled? ? nil : registrations_message,
|
||||
min_age: Setting.min_age.presence,
|
||||
url: ENV.fetch('SSO_ACCOUNT_SIGN_UP', nil),
|
||||
}
|
||||
end
|
||||
|
||||
<<<<<<< HEAD
|
||||
def api_versions
|
||||
Mastodon::Version.api_versions
|
||||
end
|
||||
|
||||
def wrapstodon
|
||||
AnnualReport.current_campaign
|
||||
=======
|
||||
def max_toot_chars
|
||||
1500
|
||||
>>>>>>> 02f81fb4b7 (Theming and such)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def registrations_enabled?
|
||||
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
|
||||
end
|
||||
|
||||
def registrations_message
|
||||
markdown.render(Setting.closed_registrations_message) if Setting.closed_registrations_message.present?
|
||||
end
|
||||
|
||||
def limited_federation?
|
||||
Rails.configuration.x.mastodon.limited_federation_mode
|
||||
end
|
||||
|
||||
def markdown
|
||||
@markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_images: true)
|
||||
end
|
||||
end
|
||||
83
config/initializers/twitter_regex.rb.orig
Normal file
83
config/initializers/twitter_regex.rb.orig
Normal file
@ -0,0 +1,83 @@
|
||||
module Twitter::TwitterText
|
||||
class Configuration
|
||||
def emoji_parsing_enabled
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
class Regex
|
||||
<<<<<<< HEAD
|
||||
REGEXEN[:valid_general_url_path_chars] = /[^\p{White_Space}<>()?]/iou
|
||||
REGEXEN[:valid_url_path_ending_chars] = /[^\p{White_Space}()?!*"'「」<>;:=,.$%\[\]~&|]|(?:#{REGEXEN[:valid_url_balanced_parens]})/iou
|
||||
=======
|
||||
REGEXEN[:valid_general_url_path_chars] = /[^\p{White_Space}<>\(\)\?]/iou
|
||||
REGEXEN[:valid_url_path_ending_chars] = /[^\p{White_Space}\(\)\?!\*"'「」<>;:=\,\.\$%\[\]~&\|@]|(?:#{REGEXEN[:valid_url_balanced_parens]})/iou
|
||||
>>>>>>> c37dcab5a9 (Allow carets in URL search params (#25216))
|
||||
REGEXEN[:valid_url_balanced_parens] = /
|
||||
\(
|
||||
(?:
|
||||
#{REGEXEN[:valid_general_url_path_chars]}+
|
||||
|
|
||||
# allow one nested level of balanced parentheses
|
||||
(?:
|
||||
#{REGEXEN[:valid_general_url_path_chars]}*
|
||||
\(
|
||||
#{REGEXEN[:valid_general_url_path_chars]}+
|
||||
\)
|
||||
#{REGEXEN[:valid_general_url_path_chars]}*
|
||||
)
|
||||
)
|
||||
\)
|
||||
/iox
|
||||
UCHARS = '\u{A0}-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFEF}\u{10000}-\u{1FFFD}\u{20000}-\u{2FFFD}\u{30000}-\u{3FFFD}\u{40000}-\u{4FFFD}\u{50000}-\u{5FFFD}\u{60000}-\u{6FFFD}\u{70000}-\u{7FFFD}\u{80000}-\u{8FFFD}\u{90000}-\u{9FFFD}\u{A0000}-\u{AFFFD}\u{B0000}-\u{BFFFD}\u{C0000}-\u{CFFFD}\u{D0000}-\u{DFFFD}\u{E1000}-\u{EFFFD}\u{E000}-\u{F8FF}\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}'
|
||||
REGEXEN[:valid_url_query_chars] = /[a-z0-9!?\*'\(\);:&=\+\$\/%#\[\]\-_\.,~|@#{UCHARS}]/iou
|
||||
REGEXEN[:valid_url_query_ending_chars] = /[a-z0-9_&=#\/\-#{UCHARS}]/iou
|
||||
REGEXEN[:valid_url_path] = /(?:
|
||||
(?:
|
||||
#{REGEXEN[:valid_general_url_path_chars]}*
|
||||
(?:#{REGEXEN[:valid_url_balanced_parens]} #{REGEXEN[:valid_general_url_path_chars]}*)*
|
||||
#{REGEXEN[:valid_url_path_ending_chars]}
|
||||
)|(?:#{REGEXEN[:valid_general_url_path_chars]}+\/)
|
||||
)/iox
|
||||
REGEXEN[:valid_url] = %r{
|
||||
( # $1 total match
|
||||
(#{REGEXEN[:valid_url_preceding_chars]}) # $2 Preceding character
|
||||
( # $3 URL
|
||||
((?:https?|dat|dweb|ipfs|ipns|ssb|gopher|gemini):\/\/)? # $4 Protocol (optional)
|
||||
(#{REGEXEN[:valid_domain]}) # $5 Domain(s)
|
||||
(?::(#{REGEXEN[:valid_port_number]}))? # $6 Port number (optional)
|
||||
(/#{REGEXEN[:valid_url_path]}*)? # $7 URL Path and anchor
|
||||
(\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]})? # $8 Query String
|
||||
)
|
||||
)
|
||||
}iox
|
||||
REGEXEN[:validate_nodeid] = /(?:
|
||||
#{REGEXEN[:validate_url_unreserved]}|
|
||||
#{REGEXEN[:validate_url_pct_encoded]}|
|
||||
[!$()*+,;=]
|
||||
)/iox
|
||||
REGEXEN[:validate_resid] = /(?:
|
||||
#{REGEXEN[:validate_url_unreserved]}|
|
||||
#{REGEXEN[:validate_url_pct_encoded]}|
|
||||
#{REGEXEN[:validate_url_sub_delims]}
|
||||
)/iox
|
||||
REGEXEN[:valid_extended_uri] = %r{
|
||||
( # $1 total match
|
||||
(#{REGEXEN[:valid_url_preceding_chars]}) # $2 Preceding character
|
||||
( # $3 URL
|
||||
(
|
||||
(xmpp:) # Protocol
|
||||
(//#{REGEXEN[:validate_nodeid]}+@#{REGEXEN[:valid_domain]}/)? # Authority (optional)
|
||||
(#{REGEXEN[:validate_nodeid]}+@)? # Username in path (optional)
|
||||
(#{REGEXEN[:valid_domain]}) # Domain in path
|
||||
(/#{REGEXEN[:validate_resid]}+)? # Resource in path (optional)
|
||||
(\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]})? # Query String
|
||||
) | (
|
||||
(magnet:) # Protocol
|
||||
(\?#{REGEXEN[:valid_url_query_chars]}*#{REGEXEN[:valid_url_query_ending_chars]}) # Query String
|
||||
)
|
||||
)
|
||||
)
|
||||
}iox
|
||||
end
|
||||
end
|
||||
2408
config/locales/en.yml.orig
Normal file
2408
config/locales/en.yml.orig
Normal file
File diff suppressed because it is too large
Load Diff
58
db/migrate/20181116173541_copy_account_stats.rb.orig
Normal file
58
db/migrate/20181116173541_copy_account_stats.rb.orig
Normal file
@ -0,0 +1,58 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class CopyAccountStats < ActiveRecord::Migration[5.2]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
safety_assured do
|
||||
if supports_upsert?
|
||||
up_fast
|
||||
else
|
||||
up_slow
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
# Nothing
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def supports_upsert?
|
||||
ActiveRecord::Base.connection.database_version >= 90_500
|
||||
end
|
||||
|
||||
def up_fast
|
||||
say 'Upsert is available, importing counters using the fast method'
|
||||
|
||||
<<<<<<< HEAD
|
||||
MigrationAccount.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts|
|
||||
execute <<~SQL.squish
|
||||
=======
|
||||
Account.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts|
|
||||
execute <<-SQL.squish
|
||||
>>>>>>> e4fcf945b7 (Final save before migration)
|
||||
INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at)
|
||||
SELECT id, statuses_count, following_count, followers_count, created_at, updated_at
|
||||
FROM accounts
|
||||
WHERE id IN (#{accounts.map(&:id).join(', ')})
|
||||
ON CONFLICT (account_id) DO UPDATE
|
||||
SET statuses_count = EXCLUDED.statuses_count, following_count = EXCLUDED.following_count, followers_count = EXCLUDED.followers_count
|
||||
SQL
|
||||
end
|
||||
end
|
||||
|
||||
def up_slow
|
||||
say 'Upsert is not available in PostgreSQL below 9.5, falling back to slow import of counters'
|
||||
|
||||
# We cannot use bulk INSERT or overarching transactions here because of possible
|
||||
# uniqueness violations that we need to skip over
|
||||
Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account|
|
||||
params = [account.id, account[:statuses_count], account[:following_count], account[:followers_count], account.created_at, account.updated_at]
|
||||
exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params)
|
||||
rescue ActiveRecord::RecordNotUnique
|
||||
next
|
||||
end
|
||||
end
|
||||
end
|
||||
47
db/schema.rb
47
db/schema.rb
@ -1609,53 +1609,6 @@ ActiveRecord::Schema[8.1].define(version: 2026_06_11_150940) do
|
||||
add_foreign_key "web_settings", "users", name: "fk_11910667b2", on_delete: :cascade
|
||||
add_foreign_key "webauthn_credentials", "users", on_delete: :cascade
|
||||
|
||||
create_view "instances", materialized: true, sql_definition: <<-SQL
|
||||
WITH domain_counts(domain, accounts_count) AS (
|
||||
SELECT accounts.domain,
|
||||
count(*) AS accounts_count
|
||||
FROM accounts
|
||||
WHERE (accounts.domain IS NOT NULL)
|
||||
GROUP BY accounts.domain
|
||||
)
|
||||
SELECT domain_counts.domain,
|
||||
domain_counts.accounts_count
|
||||
FROM domain_counts
|
||||
UNION
|
||||
SELECT domain_blocks.domain,
|
||||
COALESCE(domain_counts.accounts_count, (0)::bigint) AS accounts_count
|
||||
FROM (domain_blocks
|
||||
LEFT JOIN domain_counts ON (((domain_counts.domain)::text = (domain_blocks.domain)::text)))
|
||||
UNION
|
||||
SELECT domain_allows.domain,
|
||||
COALESCE(domain_counts.accounts_count, (0)::bigint) AS accounts_count
|
||||
FROM (domain_allows
|
||||
LEFT JOIN domain_counts ON (((domain_counts.domain)::text = (domain_allows.domain)::text)));
|
||||
SQL
|
||||
add_index "instances", "reverse(('.'::text || (domain)::text)), domain", name: "index_instances_on_reverse_domain"
|
||||
add_index "instances", ["domain"], name: "index_instances_on_domain", unique: true
|
||||
|
||||
create_view "user_ips", sql_definition: <<-SQL
|
||||
SELECT t0.user_id,
|
||||
t0.ip,
|
||||
max(t0.used_at) AS used_at
|
||||
FROM ( SELECT users.id AS user_id,
|
||||
users.sign_up_ip AS ip,
|
||||
users.created_at AS used_at
|
||||
FROM users
|
||||
WHERE (users.sign_up_ip IS NOT NULL)
|
||||
UNION ALL
|
||||
SELECT session_activations.user_id,
|
||||
session_activations.ip,
|
||||
session_activations.updated_at
|
||||
FROM session_activations
|
||||
UNION ALL
|
||||
SELECT login_activities.user_id,
|
||||
login_activities.ip,
|
||||
login_activities.created_at
|
||||
FROM login_activities
|
||||
WHERE (login_activities.success = true)) t0
|
||||
GROUP BY t0.user_id, t0.ip;
|
||||
SQL
|
||||
create_view "account_summaries", materialized: true, sql_definition: <<-SQL
|
||||
SELECT accounts.id AS account_id,
|
||||
mode() WITHIN GROUP (ORDER BY t0.language) AS language,
|
||||
|
||||
1762
db/schema.rb.orig
Normal file
1762
db/schema.rb.orig
Normal file
File diff suppressed because it is too large
Load Diff
98
lib/mastodon/version.rb.orig
Normal file
98
lib/mastodon/version.rb.orig
Normal file
@ -0,0 +1,98 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Mastodon
|
||||
module Version
|
||||
module_function
|
||||
|
||||
def major
|
||||
4
|
||||
end
|
||||
|
||||
def minor
|
||||
6
|
||||
end
|
||||
|
||||
def patch
|
||||
<<<<<<< HEAD
|
||||
3
|
||||
=======
|
||||
2
|
||||
>>>>>>> 921b03dd98 (Bump version to v4.1.2)
|
||||
end
|
||||
|
||||
def default_prerelease
|
||||
''
|
||||
end
|
||||
|
||||
def prerelease
|
||||
version_configuration[:prerelease].presence || default_prerelease
|
||||
end
|
||||
|
||||
def build_metadata
|
||||
version_configuration[:metadata]
|
||||
end
|
||||
|
||||
def to_a
|
||||
[major, minor, patch].compact
|
||||
end
|
||||
|
||||
def to_s
|
||||
components = [to_a.join('.')]
|
||||
components << "-#{prerelease}" if prerelease.present?
|
||||
components << "+#{build_metadata}" if build_metadata.present?
|
||||
components.join
|
||||
end
|
||||
|
||||
def gem_version
|
||||
@gem_version ||= Gem::Version.new(to_s.split('+')[0])
|
||||
end
|
||||
|
||||
def api_versions
|
||||
{
|
||||
mastodon: 11,
|
||||
glitch: 1,
|
||||
}
|
||||
end
|
||||
|
||||
def repository
|
||||
source_configuration[:repository]
|
||||
end
|
||||
|
||||
def source_base_url
|
||||
source_configuration[:base_url] || "https://github.com/#{repository}"
|
||||
end
|
||||
|
||||
# specify git tag or commit hash here
|
||||
def source_tag
|
||||
source_configuration[:tag]
|
||||
end
|
||||
|
||||
def source_url
|
||||
if source_tag
|
||||
"#{source_base_url}/tree/#{source_tag}"
|
||||
else
|
||||
source_base_url
|
||||
end
|
||||
end
|
||||
|
||||
def source_commit
|
||||
ENV.fetch('SOURCE_COMMIT', nil)
|
||||
end
|
||||
|
||||
def user_agent
|
||||
@user_agent ||= "Mastodon/#{Version} (#{HTTP::Request::USER_AGENT}; +http#{'s' if Rails.configuration.x.use_https}://#{Rails.configuration.x.web_domain}/)"
|
||||
end
|
||||
|
||||
def version_configuration
|
||||
mastodon_configuration.version
|
||||
end
|
||||
|
||||
def source_configuration
|
||||
mastodon_configuration.source
|
||||
end
|
||||
|
||||
def mastodon_configuration
|
||||
Rails.configuration.x.mastodon
|
||||
end
|
||||
end
|
||||
end
|
||||
15
public/robots.txt.orig
Normal file
15
public/robots.txt.orig
Normal file
@ -0,0 +1,15 @@
|
||||
# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
|
||||
|
||||
User-agent: GPTBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: *
|
||||
Disallow: /media_proxy/
|
||||
Disallow: /interact/
|
||||
<<<<<<< HEAD
|
||||
Disallow: /api/v1/instance/domain_blocks
|
||||
=======
|
||||
|
||||
User-agent: GPTBot
|
||||
Disallow:/
|
||||
>>>>>>> 71fee96ad9 (Block gpt via robots.txt)
|
||||
77
stylelint.config.js.orig
Normal file
77
stylelint.config.js.orig
Normal file
@ -0,0 +1,77 @@
|
||||
module.exports = {
|
||||
extends: ['stylelint-config-standard-scss'],
|
||||
ignoreFiles: [
|
||||
'app/javascript/styles/mastodon/reset.scss',
|
||||
<<<<<<< HEAD
|
||||
'app/javascript/flavours/glitch/styles/mastodon/reset.scss',
|
||||
=======
|
||||
'app/javascript/flavours/glitch/styles/reset.scss',
|
||||
'app/javascript/flavours/glitch/styles/modern/modern.css',
|
||||
>>>>>>> 6427a819b9 (Migrate Modern theme to separate Flavour)
|
||||
'app/javascript/styles/win95.scss',
|
||||
'coverage/**/*',
|
||||
'node_modules/**/*',
|
||||
'public/assets/**/*',
|
||||
'public/packs*/**/*',
|
||||
'vendor/**/*',
|
||||
],
|
||||
reportDescriptionlessDisables: true,
|
||||
reportInvalidScopeDisables: true,
|
||||
reportNeedlessDisables: true,
|
||||
rules: {
|
||||
'at-rule-empty-line-before': null,
|
||||
'color-function-notation': null,
|
||||
'color-function-alias-notation': null,
|
||||
'declaration-block-no-redundant-longhand-properties': null,
|
||||
'no-descending-specificity': null,
|
||||
'no-duplicate-selectors': null,
|
||||
'number-max-precision': 8,
|
||||
'property-no-vendor-prefix': null,
|
||||
'selector-class-pattern': null,
|
||||
'selector-id-pattern': null,
|
||||
'value-keyword-case': null,
|
||||
'value-no-vendor-prefix': null,
|
||||
'custom-property-pattern': [
|
||||
'^_?[a-z]([a-z0-9])*(-[a-z0-9]+)*$',
|
||||
{
|
||||
message: (name) =>
|
||||
`Expected custom property name "${name}" to be kebab-case (optional leading underscore allowed)`,
|
||||
},
|
||||
],
|
||||
|
||||
'scss/dollar-variable-empty-line-before': null,
|
||||
'scss/no-global-function-names': null,
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
files: ['app/javascript/styles/entrypoints/mailer.scss'],
|
||||
rules: {
|
||||
'property-no-unknown': [
|
||||
true,
|
||||
{
|
||||
ignoreProperties: ['/^mso-/'],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: [
|
||||
'app/javascript/**/*.module.scss',
|
||||
'app/javascript/**/*.module.css',
|
||||
],
|
||||
rules: {
|
||||
'selector-pseudo-class-no-unknown': [
|
||||
true,
|
||||
{ ignorePseudoClasses: ['global'] },
|
||||
],
|
||||
|
||||
'property-no-unknown': [
|
||||
true,
|
||||
{
|
||||
ignoreProperties: ['composes'],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user