Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
09d81defcd | ||
|
|
3810d98cd8 | ||
|
|
26b2a6a71e | ||
|
|
edf9a5e4fc | ||
|
|
c710069c12 | ||
|
|
990d6dd565 | ||
|
|
402da46ff6 | ||
|
|
e7099d8d9e | ||
|
|
637ea3bb5b | ||
|
|
363d0d3a44 | ||
|
|
6e54719474 | ||
|
|
f3003417c5 | ||
|
|
33ea042dec | ||
|
|
8b22a63ab0 | ||
|
|
05686cc99d | ||
|
|
484208ce12 | ||
|
|
3bc8924940 | ||
|
|
a02de9e012 | ||
|
|
2d395324e1 |
@@ -54,4 +54,4 @@ before_script:
|
||||
script:
|
||||
- travis_retry bundle exec parallel_test spec/ --group-by filesize --type rspec
|
||||
- yarn test
|
||||
- bundle exec i18n-tasks unused
|
||||
- bundle exec i18n-tasks check-normalized && bundle exec i18n-tasks unused
|
||||
|
||||
@@ -122,6 +122,7 @@ export default class StatusContent extends React.PureComponent {
|
||||
const directionStyle = { direction: 'ltr' };
|
||||
const classNames = classnames('status__content', {
|
||||
'status__content--with-action': this.props.onClick && this.context.router,
|
||||
'status__content--with-spoiler': status.get('spoiler_text').length > 0,
|
||||
});
|
||||
|
||||
if (isRtl(status.get('search_index'))) {
|
||||
@@ -153,7 +154,7 @@ export default class StatusContent extends React.PureComponent {
|
||||
|
||||
{mentionsPlaceholder}
|
||||
|
||||
<div tabIndex={!hidden && 0} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} />
|
||||
<div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} />
|
||||
</div>
|
||||
);
|
||||
} else if (this.props.onClick) {
|
||||
|
||||
@@ -159,11 +159,11 @@
|
||||
"privacy.public.short": "Públic",
|
||||
"privacy.unlisted.long": "No publicar en línies de temps públiques",
|
||||
"privacy.unlisted.short": "No llistat",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.just_now": "now",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.days": "fa {number} jorns",
|
||||
"relative_time.hours": "fa {number} hores",
|
||||
"relative_time.just_now": "ara",
|
||||
"relative_time.minutes": "fa {number} minutes",
|
||||
"relative_time.seconds": "fa {number} segondes",
|
||||
"reply_indicator.cancel": "Cancel·lar",
|
||||
"report.placeholder": "Comentaris addicionals",
|
||||
"report.submit": "Enviar",
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
"privacy.unlisted.short": "Sin federar",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.just_now": "now",
|
||||
"relative_time.just_now": "ahora",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"reply_indicator.cancel": "Cancelar",
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
"confirmations.mute.message": "Confirmez-vous le masquage de {name} ?",
|
||||
"confirmations.unfollow.confirm": "Ne plus suivre",
|
||||
"confirmations.unfollow.message": "Voulez-vous arrêter de suivre {name} ?",
|
||||
"embed.instructions": "Intégrez ce statut à votre site en copiant ce code ci-dessous.",
|
||||
"embed.instructions": "Intégrez ce statut à votre site en copiant le code ci-dessous.",
|
||||
"embed.preview": "Il apparaîtra comme cela : ",
|
||||
"emoji_button.activity": "Activités",
|
||||
"emoji_button.custom": "Personnalisés",
|
||||
@@ -159,11 +159,11 @@
|
||||
"privacy.public.short": "Public",
|
||||
"privacy.unlisted.long": "Ne pas afficher dans les fils publics",
|
||||
"privacy.unlisted.short": "Non-listé",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.just_now": "now",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.days": "{number} j",
|
||||
"relative_time.hours": "{number} h",
|
||||
"relative_time.just_now": "à l’instant",
|
||||
"relative_time.minutes": "{number} min",
|
||||
"relative_time.seconds": "{number} s",
|
||||
"reply_indicator.cancel": "Annuler",
|
||||
"report.placeholder": "Commentaires additionnels",
|
||||
"report.submit": "Envoyer",
|
||||
|
||||
@@ -159,11 +159,11 @@
|
||||
"privacy.public.short": "Public",
|
||||
"privacy.unlisted.long": "Mostrar pas dins los fluxes publics",
|
||||
"privacy.unlisted.short": "Pas-listat",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.just_now": "now",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.days": "fa {number}j",
|
||||
"relative_time.hours": "fa {number}h",
|
||||
"relative_time.just_now": "ara",
|
||||
"relative_time.minutes": "fa {number} minutas",
|
||||
"relative_time.seconds": "fa {number} segondas",
|
||||
"reply_indicator.cancel": "Anullar",
|
||||
"report.placeholder": "Comentaris addicionals",
|
||||
"report.submit": "Mandar",
|
||||
|
||||
@@ -169,11 +169,11 @@
|
||||
"report.submit": "Enviar",
|
||||
"report.target": "Denunciar",
|
||||
"search.placeholder": "Pesquisar",
|
||||
"search_popout.search_format": "Advanced search format",
|
||||
"search_popout.search_format": "Formato de busca avançado",
|
||||
"search_popout.tips.hashtag": "hashtag",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.text": "Texto simples retorna nomes de exibição, usuários e hashtags correspondentes",
|
||||
"search_popout.tips.user": "user",
|
||||
"search_popout.tips.user": "usuário",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
|
||||
"standalone.public_title": "Dê uma espiada...",
|
||||
"status.cannot_reblog": "Esta postagem não pode ser compartilhada",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"account.mute": "Tysta @{name}",
|
||||
"account.posts": "Inlägg",
|
||||
"account.report": "Rapportera @{name}",
|
||||
"account.requested": "Inväntar godkännande. Klicka för att avbryta följarförfrågan",
|
||||
"account.requested": "Inväntar godkännande. Klicka för att avbryta följförfrågan",
|
||||
"account.share": "Dela @{name}'s profil",
|
||||
"account.unblock": "Avblockera @{name}",
|
||||
"account.unblock_domain": "Ta fram {domain}",
|
||||
@@ -90,13 +90,13 @@
|
||||
"follow_request.reject": "Avvisa",
|
||||
"getting_started.appsshort": "Appar",
|
||||
"getting_started.faq": "FAQ",
|
||||
"getting_started.heading": "Komma igång",
|
||||
"getting_started.open_source_notice": "Mastodon är öppen källkod programvara. Du kan bidra eller rapportera problem på GitHub på {github}.",
|
||||
"getting_started.heading": "Kom igång",
|
||||
"getting_started.open_source_notice": "Mastodon är programvara med öppen källkod. Du kan bidra eller rapportera problem på GitHub på {github}.",
|
||||
"getting_started.userguide": "Användarguide",
|
||||
"home.column_settings.advanced": "Avancerad",
|
||||
"home.column_settings.basic": "Grundläggande",
|
||||
"home.column_settings.filter_regex": "Filtrera ut med regelbundna uttryck",
|
||||
"home.column_settings.show_reblogs": "Vsa boosts",
|
||||
"home.column_settings.show_reblogs": "Visa knuffar",
|
||||
"home.column_settings.show_replies": "Visa svar",
|
||||
"home.settings": "Kolumninställningar",
|
||||
"lightbox.close": "Stäng",
|
||||
@@ -109,17 +109,18 @@
|
||||
"navigation_bar.community_timeline": "Lokal tidslinje",
|
||||
"navigation_bar.edit_profile": "Redigera profil",
|
||||
"navigation_bar.favourites": "Favoriter",
|
||||
"navigation_bar.follow_requests": "Följa förfrågningar",
|
||||
"navigation_bar.follow_requests": "Följförfrågningar",
|
||||
"navigation_bar.info": "Om denna instans",
|
||||
"navigation_bar.logout": "Logga ut",
|
||||
"navigation_bar.mutes": "Tystade användare",
|
||||
"navigation_bar.pins": "Nålade inlägg (toots)",
|
||||
"navigation_bar.preferences": "Företrädare",
|
||||
"navigation_bar.public_timeline": "Förenade tidslinje",
|
||||
|
||||
"navigation_bar.preferences": "Inställningar",
|
||||
"navigation_bar.public_timeline": "Förenad tidslinje",
|
||||
"notification.favourite": "{name} favoriserade din status",
|
||||
"notification.follow": "{name} följer dig",
|
||||
"notification.mention": "{name} nämnde dig",
|
||||
"notification.reblog": "{name} boostade din status",
|
||||
"notification.reblog": "{name} knuffade din status",
|
||||
"notifications.clear": "Rensa meddelanden",
|
||||
"notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?",
|
||||
"notifications.column_settings.alert": "Skrivbordsmeddelanden",
|
||||
@@ -128,15 +129,15 @@
|
||||
"notifications.column_settings.mention": "Omnämningar:",
|
||||
"notifications.column_settings.push": "Push meddelanden",
|
||||
"notifications.column_settings.push_meta": "Denna anordning",
|
||||
"notifications.column_settings.reblog": "Boostar:",
|
||||
"notifications.column_settings.reblog": "Knuffar:",
|
||||
"notifications.column_settings.show": "Visa i kolumnen",
|
||||
"notifications.column_settings.sound": "Spela upp ljud",
|
||||
"onboarding.done": "Klart",
|
||||
"onboarding.next": "Nästa",
|
||||
"onboarding.page_five.public_timelines": "Den lokala tidslinjen visar offentliga inlägg från alla på {domain}. Den förenade tidslinjen visar offentliga inlägg från alla personer på {domain} som följer. Det här är de offentliga tidslinjerna, och ett bra sätt att upptäcka nya människor.",
|
||||
"onboarding.page_five.public_timelines": "Den lokala tidslinjen visar offentliga inlägg från alla på {domain}. Den förenade tidslinjen visar offentliga inlägg från alla personer på {domain} som följer. Dom här offentliga tidslinjerna är ett bra sätt att upptäcka nya människor.",
|
||||
"onboarding.page_four.home": "Hemmatidslinjen visar inlägg från personer du följer.",
|
||||
"onboarding.page_four.notifications": "Meddelandekolumnen visar när någon interagerar med dig.",
|
||||
"onboarding.page_one.federation": "Mastodon är ett nätverk av oberoende servrar som går med för att skapa ett större socialt nätverk. Vi kallar dessa servrar instanser.",
|
||||
"onboarding.page_one.federation": "Mastodon är ett nätverk av oberoende servrar som ansluter för att skapa ett större socialt nätverk. Vi kallar dessa servrar instanser.",
|
||||
"onboarding.page_one.handle": "Du är på {domain}, så din fulla hantering är {handle}",
|
||||
"onboarding.page_one.welcome": "Välkommen till Mastodon!",
|
||||
"onboarding.page_six.admin": "Din instansadmin är {admin}.",
|
||||
@@ -172,7 +173,7 @@
|
||||
"search_popout.tips.user": "användare",
|
||||
"search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
|
||||
"standalone.public_title": "En titt inuti...",
|
||||
"status.cannot_reblog": "Detta inlägg kan inte bli boostat",
|
||||
"status.cannot_reblog": "Detta inlägg kan inte knuffas",
|
||||
"status.delete": "Ta bort",
|
||||
"status.embed": "Bädda in",
|
||||
"status.favourite": "Favorit",
|
||||
@@ -182,8 +183,8 @@
|
||||
"status.mute_conversation": "Tysta konversation",
|
||||
"status.open": "Utvidga denna status",
|
||||
"status.pin": "Fäst i profil",
|
||||
"status.reblog": "Boost",
|
||||
"status.reblogged_by": "{name} boostade",
|
||||
"status.reblog": "Knuff",
|
||||
"status.reblogged_by": "{name} knuffade",
|
||||
"status.reply": "Svara",
|
||||
"status.replyAll": "Svara på tråden",
|
||||
"status.report": "Rapportera @{name}",
|
||||
@@ -195,7 +196,7 @@
|
||||
"status.unmute_conversation": "Öppna konversation",
|
||||
"status.unpin": "Ångra fäst i profil",
|
||||
"tabs_bar.compose": "Skriv",
|
||||
"tabs_bar.federated_timeline": "Förenade",
|
||||
"tabs_bar.federated_timeline": "Förenad",
|
||||
"tabs_bar.home": "Hem",
|
||||
"tabs_bar.local_timeline": "Lokal",
|
||||
"tabs_bar.notifications": "Meddelanden",
|
||||
|
||||
@@ -12,7 +12,11 @@ const createAudio = sources => {
|
||||
const play = audio => {
|
||||
if (!audio.paused) {
|
||||
audio.pause();
|
||||
audio.fastSeek(0);
|
||||
if (typeof audio.fastSeek === 'function') {
|
||||
audio.fastSeek(0);
|
||||
} else {
|
||||
audio.seek(0);
|
||||
}
|
||||
}
|
||||
|
||||
audio.play();
|
||||
|
||||
@@ -75,15 +75,9 @@ const updateTimeline = (state, timeline, status, references) => {
|
||||
}));
|
||||
};
|
||||
|
||||
const deleteStatus = (state, id, accountId, references, reblogOf) => {
|
||||
const deleteStatus = (state, id, accountId, references) => {
|
||||
state.keySeq().forEach(timeline => {
|
||||
state = state.updateIn([timeline, 'items'], list => {
|
||||
if (reblogOf && !list.includes(reblogOf)) {
|
||||
return list.map(item => item === id ? reblogOf : item);
|
||||
} else {
|
||||
return list.filterNot(item => item === id);
|
||||
}
|
||||
});
|
||||
state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
|
||||
});
|
||||
|
||||
// Remove reblogs of deleted status
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
@import 'mixins';
|
||||
@import 'variables';
|
||||
@import 'mastodon/mixins';
|
||||
@import 'mastodon/variables';
|
||||
@import 'fonts/roboto';
|
||||
@import 'fonts/roboto-mono';
|
||||
@import 'fonts/montserrat';
|
||||
|
||||
@import 'reset';
|
||||
@import 'basics';
|
||||
@import 'containers';
|
||||
@import 'lists';
|
||||
@import 'footer';
|
||||
@import 'compact_header';
|
||||
@import 'landing_strip';
|
||||
@import 'forms';
|
||||
@import 'accounts';
|
||||
@import 'stream_entries';
|
||||
@import 'components';
|
||||
@import 'emoji_picker';
|
||||
@import 'about';
|
||||
@import 'tables';
|
||||
@import 'admin';
|
||||
@import 'rtl';
|
||||
@import 'mastodon/reset';
|
||||
@import 'mastodon/basics';
|
||||
@import 'mastodon/containers';
|
||||
@import 'mastodon/lists';
|
||||
@import 'mastodon/footer';
|
||||
@import 'mastodon/compact_header';
|
||||
@import 'mastodon/landing_strip';
|
||||
@import 'mastodon/forms';
|
||||
@import 'mastodon/accounts';
|
||||
@import 'mastodon/stream_entries';
|
||||
@import 'mastodon/components';
|
||||
@import 'mastodon/emoji_picker';
|
||||
@import 'mastodon/about';
|
||||
@import 'mastodon/tables';
|
||||
@import 'mastodon/admin';
|
||||
@import 'mastodon/rtl';
|
||||
|
||||
@@ -30,7 +30,7 @@ body {
|
||||
}
|
||||
|
||||
&.app-body {
|
||||
position: fixed;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
@@ -511,6 +511,14 @@
|
||||
overflow: hidden;
|
||||
white-space: pre-wrap;
|
||||
|
||||
&.status__content--with-spoiler {
|
||||
white-space: normal;
|
||||
|
||||
.status__content__text {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
}
|
||||
|
||||
.emojione {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
@@ -67,9 +67,14 @@ class ActivityPub::Activity
|
||||
end
|
||||
|
||||
def distribute(status)
|
||||
crawl_links(status)
|
||||
|
||||
# Only continue if the status is supposed to have
|
||||
# arrived in real-time
|
||||
return unless @options[:override_timestamps]
|
||||
|
||||
notify_about_reblog(status) if reblog_of_local_account?(status)
|
||||
notify_about_mentions(status)
|
||||
crawl_links(status)
|
||||
distribute_to_followers(status)
|
||||
end
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
|
||||
Rails.logger.debug "Queuing remote status #{status.id} (#{id}) for distribution"
|
||||
|
||||
LinkCrawlWorker.perform_async(status.id) unless status.spoiler_text?
|
||||
DistributionWorker.perform_async(status.id)
|
||||
DistributionWorker.perform_async(status.id) if @options[:override_timestamps]
|
||||
|
||||
status
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
class FetchLinkCardService < BaseService
|
||||
URL_PATTERN = %r{
|
||||
( # $1 URL
|
||||
(https?:\/\/)? # $2 Protocol (optional)
|
||||
(https?:\/\/) # $2 Protocol (required)
|
||||
(#{Twitter::Regex[:valid_domain]}) # $3 Domain(s)
|
||||
(?::(#{Twitter::Regex[:valid_port_number]}))? # $4 Port number (optional)
|
||||
(/#{Twitter::Regex[:valid_url_path]}*)? # $5 URL Path and anchor
|
||||
|
||||
@@ -44,6 +44,7 @@ fr:
|
||||
setting_default_sensitive: Toujours marquer les médias comme sensibles
|
||||
setting_delete_modal: Afficher une fenêtre de confirmation avant de supprimer un pouet
|
||||
setting_noindex: Demander aux moteurs de recherche de ne pas indexer vos informations personnelles
|
||||
setting_reduce_motion: Réduire la vitesse des animations
|
||||
setting_system_font_ui: Utiliser la police par défaut du système
|
||||
setting_theme: Thème du site
|
||||
setting_unfollow_modal: Afficher une fenêtre de confirmation avant de vous désabonner d’un compte
|
||||
|
||||
@@ -4,13 +4,17 @@ nl:
|
||||
hints:
|
||||
defaults:
|
||||
avatar: PNG, GIF of JPG. Maximaal 2MB. Wordt teruggeschaald naar 120x120px
|
||||
display_name: Maximaal 30 tekens
|
||||
digest: Wordt na een lange periode van inactiviteit verzonden, met een samenvatting van vermeldingen tijdens je afwezigheid.
|
||||
display_name:
|
||||
one: <span class="name-counter">1</span> teken over
|
||||
other: <span class="name-counter">%{count}</span> tekens over
|
||||
header: PNG, GIF of JPG. Maximaal 2MB. Wordt teruggeschaald naar 700x335px
|
||||
locked: Vereist dat je handmatig volgers moet accepteren en stelt de privacy van toots standaard in op alleen volgers
|
||||
note:
|
||||
one: <span class="note-counter">1</span> teken over
|
||||
other: <span class="note-counter">%{count}</span> tekens over
|
||||
setting_noindex: Heeft invloed op jouw openbare profiel en toots
|
||||
setting_theme: Heeft invloed op hoe de webapp van Mastodon er uit ziet, op elk apparaat waarmee je inlogt.
|
||||
imports:
|
||||
data: CSV-bestand dat op een andere Mastodon-server werd geëxporteerd
|
||||
sessions:
|
||||
|
||||
@@ -39,7 +39,7 @@ sv:
|
||||
otp_attempt: Tvåfaktorkod
|
||||
password: Lösenord
|
||||
setting_auto_play_gif: Auto-play animerade GIF-filer
|
||||
setting_boost_modal: Visa bekräftelsedialog innan du boostar
|
||||
setting_boost_modal: Visa bekräftelsedialog innan du knuffar
|
||||
setting_default_privacy: Postintegritet
|
||||
setting_default_sensitive: Markera alltid media som känsligt
|
||||
setting_delete_modal: Visa bekräftelse innan du raderar en toot
|
||||
@@ -59,7 +59,7 @@ sv:
|
||||
follow: Skicka e-post när någon följer dig
|
||||
follow_request: Skicka e-post när någon begär att följa dig
|
||||
mention: Skicka e-post när någon nämner dig
|
||||
reblog: Skicka e-post när någon boostar din status
|
||||
reblog: Skicka e-post när någon knuffar din status
|
||||
'no': Nej
|
||||
required:
|
||||
mark: "*"
|
||||
|
||||
@@ -151,12 +151,12 @@ sv:
|
||||
suspend: Suspendera
|
||||
title: Nytt domänblock
|
||||
reject_media: Avvisa mediafiler
|
||||
reject_media_hint: Ta bort lokalt lagrade mediefiler och tar bor möjligheten att ladda ner någon i framtiden. Irrelevant för suspensioner
|
||||
reject_media_hint: Ta bort lokalt lagrade mediefiler och tar bort möjligheten att ladda ner något i framtiden. Irrelevant för suspensioner
|
||||
severities:
|
||||
noop: Ingen
|
||||
silence: Tystnad
|
||||
suspend: Suspendera
|
||||
severity: Strikthet
|
||||
severity: Svårighet
|
||||
show:
|
||||
affected_accounts:
|
||||
one: Ett konto i databasen drabbades
|
||||
|
||||
@@ -14,4 +14,12 @@ module.exports = {
|
||||
'raf/polyfill',
|
||||
],
|
||||
setupTestFrameworkScriptFile: '<rootDir>/app/javascript/mastodon/test_setup.js',
|
||||
collectCoverageFrom: [
|
||||
'app/javascript/mastodon/**/*.js',
|
||||
'!app/javascript/mastodon/features/emoji/emoji_compressed.js',
|
||||
'!app/javascript/mastodon/locales/locale-data/*.js',
|
||||
'!app/javascript/mastodon/service_worker/entry.js',
|
||||
'!app/javascript/mastodon/test_setup.js',
|
||||
],
|
||||
coverageDirectory: '<rootDir>/coverage',
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@ module Mastodon
|
||||
end
|
||||
|
||||
def flags
|
||||
'rc3'
|
||||
''
|
||||
end
|
||||
|
||||
def to_a
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"start": "node ./streaming/index.js",
|
||||
"test": "npm run test:lint && npm run test:jest",
|
||||
"test:lint": "eslint -c .eslintrc.yml --ext=js app/javascript/ config/webpack/ spec/javascript/ streaming/",
|
||||
"test:jest": "cross-env NODE_ENV=test jest",
|
||||
"test:jest": "cross-env NODE_ENV=test jest --coverage",
|
||||
"postinstall": "npm rebuild node-sass"
|
||||
},
|
||||
"repository": {
|
||||
|
||||
Reference in New Issue
Block a user