Merge branch 'main' into gallery

This commit is contained in:
believethehype 2024-06-29 15:31:54 +02:00 committed by GitHub
commit bb00616275
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 159 additions and 42 deletions

View File

@ -12,8 +12,8 @@ android {
applicationId "com.vitorpamplona.amethyst"
minSdk 26
targetSdk 34
versionCode 382
versionName "0.88.5"
versionCode 383
versionName "0.88.6"
buildConfigField "String", "RELEASE_NOTES_ID", "\"2a34cbadd03212c8162e1ff896ba12641821088a2ec8d5e40d54aa80c0510800\""
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@ -2734,12 +2734,12 @@ class Account(
val url = RelayUrlFormatter.normalize(it.key)
val localFeedTypes =
localRelays.firstOrNull { localRelay -> RelayUrlFormatter.normalize(localRelay.url) == url }?.feedTypes
localRelays.firstOrNull { localRelay -> RelayUrlFormatter.normalize(localRelay.url) == url }?.feedTypes?.minus(setOf(FeedType.SEARCH, FeedType.WALLET_CONNECT))
?: Constants.defaultRelays
.filter { defaultRelay -> defaultRelay.url == url }
.firstOrNull()
?.feedTypes
?: FeedType.values().toSet()
?: Constants.activeTypesGlobalChats
RelaySetupInfo(url, it.value.read, it.value.write, localFeedTypes)
} ?: return null
@ -2747,7 +2747,7 @@ class Account(
return usersRelayList.toTypedArray()
}
fun convertLocalRelays(): Array<RelaySetupInfo> = localRelays.map { RelaySetupInfo(RelayUrlFormatter.normalize(it.url), it.read, it.write, it.feedTypes) }.toTypedArray()
fun convertLocalRelays(): Array<RelaySetupInfo> = localRelays.map { RelaySetupInfo(RelayUrlFormatter.normalize(it.url), it.read, it.write, it.feedTypes.minus(setOf(FeedType.SEARCH, FeedType.WALLET_CONNECT))) }.toTypedArray()
fun activeGlobalRelays(): Array<String> =
connectToRelays.value

View File

@ -20,13 +20,10 @@
*/
package com.vitorpamplona.amethyst.service
import com.vitorpamplona.ammolite.relays.Client
import com.vitorpamplona.ammolite.relays.FeedType
import com.vitorpamplona.ammolite.relays.Filter
import com.vitorpamplona.ammolite.relays.Relay
import com.vitorpamplona.ammolite.relays.TypedFilter
import com.vitorpamplona.quartz.events.LnZapPaymentResponseEvent
import com.vitorpamplona.quartz.events.RelayAuthEvent
import com.vitorpamplona.quartz.signers.NostrSigner
class NostrLnZapPaymentResponseDataSource(
@ -62,18 +59,4 @@ class NostrLnZapPaymentResponseDataSource(
channel.typedFilters = listOfNotNull(wc).ifEmpty { null }
}
override fun auth(
relay: Relay,
challenge: String,
) {
super.auth(relay, challenge)
RelayAuthEvent.create(relay.url, challenge, authSigner) {
Client.send(
it,
relay.url,
)
}
}
}

View File

@ -88,6 +88,7 @@ import com.vitorpamplona.amethyst.ui.theme.largeRelayIconModifier
import com.vitorpamplona.amethyst.ui.theme.placeholderText
import com.vitorpamplona.amethyst.ui.theme.warningColor
import com.vitorpamplona.ammolite.relays.Constants
import com.vitorpamplona.ammolite.relays.Constants.activeTypesGlobalChats
import com.vitorpamplona.ammolite.relays.FeedType
import com.vitorpamplona.ammolite.relays.RelayBriefInfoCache
import com.vitorpamplona.ammolite.relays.RelayStat
@ -753,7 +754,7 @@ fun Kind3RelayEditBox(
url = RelayUrlFormatter.normalize(url),
read = read,
write = write,
feedTypes = FeedType.entries.toSet(),
feedTypes = activeTypesGlobalChats,
relayStat = RelayStat(),
),
)

View File

@ -25,6 +25,7 @@ import androidx.lifecycle.viewModelScope
import com.vitorpamplona.amethyst.model.Account
import com.vitorpamplona.amethyst.service.Nip11CachedRetriever
import com.vitorpamplona.ammolite.relays.Constants
import com.vitorpamplona.ammolite.relays.Constants.activeTypesGlobalChats
import com.vitorpamplona.ammolite.relays.FeedType
import com.vitorpamplona.ammolite.relays.RelaySetupInfo
import com.vitorpamplona.ammolite.relays.RelayStats
@ -99,7 +100,7 @@ class Kind3RelayListViewModel : ViewModel() {
.filter { defaultRelay -> defaultRelay.url == it.key }
.firstOrNull()
?.feedTypes
?: FeedType.values().toSet().toImmutableSet()
?: activeTypesGlobalChats.toImmutableSet()
Kind3BasicRelaySetupInfo(
url = RelayUrlFormatter.normalize(it.key),
@ -108,8 +109,7 @@ class Kind3RelayListViewModel : ViewModel() {
feedTypes = localInfoFeedTypes,
relayStat = RelayStats.get(it.key),
)
}
.distinctBy { it.url }
}.distinctBy { it.url }
.sortedBy { it.relayStat.receivedBytes }
.reversed()
} else {
@ -122,8 +122,7 @@ class Kind3RelayListViewModel : ViewModel() {
feedTypes = it.feedTypes,
relayStat = RelayStats.get(it.url),
)
}
.distinctBy { it.url }
}.distinctBy { it.url }
.sortedBy { it.relayStat.receivedBytes }
.reversed()
}
@ -134,16 +133,16 @@ class Kind3RelayListViewModel : ViewModel() {
hasModified = true
_relays.update {
defaultRelays.map {
Kind3BasicRelaySetupInfo(
url = RelayUrlFormatter.normalize(it.url),
read = it.read,
write = it.write,
feedTypes = it.feedTypes,
relayStat = RelayStats.get(it.url),
)
}
.distinctBy { it.url }
defaultRelays
.map {
Kind3BasicRelaySetupInfo(
url = RelayUrlFormatter.normalize(it.url),
read = it.read,
write = it.write,
feedTypes = it.feedTypes,
relayStat = RelayStats.get(it.url),
)
}.distinctBy { it.url }
.sortedBy { it.relayStat.receivedBytes }
.reversed()
}
@ -223,6 +222,4 @@ fun <T> Iterable<T>.updated(
fun <T> togglePresenceInSet(
set: Set<T>,
item: T,
): Set<T> {
return if (set.contains(item)) set.minus(item) else set.plus(item)
}
): Set<T> = if (set.contains(item)) set.minus(item) else set.plus(item)

View File

@ -437,6 +437,7 @@
<string name="settings">Nastavení</string>
<string name="connectivity_type_always">Vždy</string>
<string name="connectivity_type_wifi_only">Pouze Wi-Fi</string>
<string name="connectivity_type_unmetered_wifi_only">Neomezená WiFi</string>
<string name="connectivity_type_never">Nikdy</string>
<string name="ui_feature_set_type_complete">Hotovo</string>
<string name="ui_feature_set_type_simplified">Zjednodušené</string>
@ -625,6 +626,8 @@
<string name="server_did_not_provide_a_url_after_uploading">Server po nahrání neposkytl URL</string>
<string name="could_not_download_from_the_server">Nepodařilo se stáhnout nahraná média ze serveru</string>
<string name="could_not_prepare_local_file_to_upload">Nelze připravit místní soubor k nahrání: %1$s</string>
<string name="failed_to_upload_with_message">Nahrání selhalo: %1$s</string>
<string name="failed_to_delete_with_message">Smazání selhalo: %1$s</string>
<string name="edit_draft">Upravit koncept</string>
<string name="login_with_qr_code">Přihlášení pomocí QR kódu</string>
<string name="route">Trasa</string>
@ -644,6 +647,7 @@
<string name="reply_description">Odpověď</string>
<string name="boost_or_quote_description">Zvýšit nebo citovat</string>
<string name="like_description">Olajkovat</string>
<string name="change_reaction">Změnit rychlé reakce</string>
<string name="profile_image_of_user">Obrázek profilu %1$s</string>
<string name="relay_info">Relé %1$s</string>
<string name="expand_relay_list">Rozbalit seznam relací</string>
@ -732,4 +736,33 @@
<string name="dvm_requesting_job">Žádost o práci od DVM</string>
<string name="nwc_payment_request">Žádost o platbu odeslána, čeká se na potvrzení z vaší peněženky</string>
<string name="dvm_waiting_to_confirm_payment">Čekání na potvrzení platby DVM nebo na zaslání výsledků</string>
<string name="http_status_400">Špatný požadavek - Server nemůže nebo nechce zpracovat požadavek.</string>
<string name="http_status_401">Neautorizovaný - Uživatel nemá platné přihlašovací údaje</string>
<string name="http_status_402">Požadována platba - Server vyžaduje platbu pro dokončení požadavku</string>
<string name="http_status_403">Zakázáno - Uživatel nemá přístupová práva k provedení požadavku</string>
<string name="http_status_404">Nenalezeno - Server nemůže najít požadovanou adresu</string>
<string name="http_status_405">Metoda není povolena - Server podporuje metodu požadavku, ale ne cílový zdroj</string>
<string name="http_status_406">Nepřijatelné - Server nenachází žádný obsah, který by vyhovoval požadavku.</string>
<string name="http_status_407">Vyžadováno ověření proxy - Uživatel nemá platné přihlašovací údaje</string>
<string name="http_status_408">Časový limit požadavku - Server čekal na někoho jiného příliš dlouho</string>
<string name="http_status_409">Konflikt - Server nemůže splnit požadavek, protože existuje konflikt se zdrojem</string>
<string name="http_status_410">Pryč - Požadovaný obsah byl trvale odstraněn ze serveru a nebude obnoven</string>
<string name="http_status_411">Požadována délka - Server odmítá požadavek, protože vyžaduje definovanou délku</string>
<string name="http_status_412">Předpoklad selhal - Předpoklady požadavku v hlavičkách, které server nesplňuje</string>
<string name="http_status_413">Příliš velký obsah - Požadavek je větší než definované limity serveru a server odmítá jej zpracovat</string>
<string name="http_status_414">Příliš dlouhá URI - URL požadovaná klientem je příliš dlouhá na to, aby ji server zpracoval.</string>
<string name="http_status_415">Nepodporovaný typ média - Požadavek používá formát média, který server nepodporuje</string>
<string name="http_status_416">Rozsah nesplnitelný - Server nemůže splnit hodnotu uvedenou v hlavičce rozsahu požadavku.</string>
<string name="http_status_417">Očekávání selhalo - Server nemůže splnit požadavky uvedené v hlavičce očekávání požadavku</string>
<string name="http_status_426">Vyžadována aktualizace - Server odmítá zpracovat požadavek s aktuálním protokolem, pokud klient neaktualizuje na jiný protokol.</string>
<string name="http_status_500">Interní chyba serveru - Server narazil na neočekávanou chybu a nemůže dokončit požadavek</string>
<string name="http_status_501">Nerealizováno - Server nemůže splnit požadavek nebo nerozpoznává metodu požadavku</string>
<string name="http_status_502">Špatná brána - Server funguje jako brána a obdržel neplatnou odpověď od hostitele</string>
<string name="http_status_503">Služba nedostupná - K tomu často dochází, když je server přetížený nebo je v údržbě</string>
<string name="http_status_504">Časový limit brány - Server fungoval jako brána nebo proxy a čekal na odpověď příliš dlouho</string>
<string name="http_status_505">Verze HTTP není podporována - Server nepodporuje verzi HTTP v požadavku</string>
<string name="http_status_506">Varianta také vyjednává - Server má interní konfigurační chybu</string>
<string name="http_status_507">Nedostatečné úložiště - Server nemá dostatek úložiště, aby úspěšně zpracoval požadavek</string>
<string name="http_status_508">Detekována smyčka - Server detekuje nekonečnou smyčku při zpracování požadavku</string>
<string name="http_status_511">Vyžadováno ověření sítě - Klient musí být autentizován, aby získal přístup k síti</string>
</resources>

View File

@ -436,6 +436,7 @@ anz der Bedingungen ist erforderlich</string>
<string name="settings">Einstellungen</string>
<string name="connectivity_type_always">Immer</string>
<string name="connectivity_type_wifi_only">Nur WLAN</string>
<string name="connectivity_type_unmetered_wifi_only">Unbegrenztes WLAN</string>
<string name="connectivity_type_never">Nie</string>
<string name="ui_feature_set_type_complete">Fertig</string>
<string name="ui_feature_set_type_simplified">Vereinfacht</string>
@ -621,6 +622,8 @@ anz der Bedingungen ist erforderlich</string>
<string name="server_did_not_provide_a_url_after_uploading">Der Server hat nach dem Hochladen keine URL angegeben</string>
<string name="could_not_download_from_the_server">Hochgeladene Medien konnten nicht vom Server heruntergeladen werden</string>
<string name="could_not_prepare_local_file_to_upload">Lokale Datei konnte nicht zum Hochladen vorbereitet werden: %1$s</string>
<string name="failed_to_upload_with_message">Upload fehlgeschlagen: %1$s</string>
<string name="failed_to_delete_with_message">Löschen fehlgeschlagen: %1$s</string>
<string name="edit_draft">Entwurf bearbeiten</string>
<string name="login_with_qr_code">Einloggen mit QR-Code</string>
<string name="route_home">Startseite</string>
@ -638,6 +641,7 @@ anz der Bedingungen ist erforderlich</string>
<string name="reply_description">Antworten</string>
<string name="boost_or_quote_description">Boosten oder Zitieren</string>
<string name="like_description">Gefällt mir</string>
<string name="change_reaction">Schnelle Reaktionen ändern</string>
<string name="profile_image_of_user">Profilbild von %1$s</string>
<string name="relay_info">%1$s weiterleiten</string>
<string name="expand_relay_list">Rela-Liste erweitern</string>
@ -725,4 +729,33 @@ anz der Bedingungen ist erforderlich</string>
<string name="dvm_requesting_job">Anforderung eines Jobs von DVM</string>
<string name="nwc_payment_request">Zahlungsanforderung gesendet, wartet auf Bestätigung Ihrer Geldbörse</string>
<string name="dvm_waiting_to_confirm_payment">Warten auf Bestätigung der Zahlung durch DVM oder auf die Ergebnisse</string>
<string name="http_status_400">Fehlerhafte Anfrage - Der Server kann oder will die Anfrage nicht verarbeiten.</string>
<string name="http_status_401">Nicht autorisiert - Der Benutzer hat keine gültigen Authentifizierungsdaten</string>
<string name="http_status_402">Zahlung erforderlich - Der Server verlangt eine Zahlung, um die Anfrage abzuschließen</string>
<string name="http_status_403">Verboten - Der Benutzer hat keine Zugriffsrechte, um die Anfrage zu stellen</string>
<string name="http_status_404">Nicht gefunden - Der Server kann die angeforderte Adresse nicht finden</string>
<string name="http_status_405">Methode nicht erlaubt - Der Server unterstützt die Anfragemethode, aber nicht die Zielressource</string>
<string name="http_status_406">Nicht akzeptabel - Der Server findet keinen Inhalt, der die Anfrage erfüllt.</string>
<string name="http_status_407">Proxy-Authentifizierung erforderlich - Der Benutzer hat keine gültigen Authentifizierungsdaten</string>
<string name="http_status_408">Anfrage-Timeout - Der Server hat zu lange auf jemanden anderen gewartet</string>
<string name="http_status_409">Konflikt - Der Server kann die Anfrage nicht erfüllen, da ein Konflikt mit der Ressource besteht</string>
<string name="http_status_410">Verschwunden - Der angeforderte Inhalt wurde dauerhaft vom Server gelöscht und wird nicht wiederhergestellt</string>
<string name="http_status_411">Länge erforderlich - Der Server lehnt die Anfrage ab, da er eine definierte Länge erfordert</string>
<string name="http_status_412">Vorbedingung fehlgeschlagen - Die Vorbedingungen der Anfrage in den Kopfzeilenfeldern, die der Server nicht erfüllt</string>
<string name="http_status_413">Nutzlast zu groß - Die Anfrage ist größer als die vom Server definierten Grenzen und der Server weigert sich, sie zu verarbeiten</string>
<string name="http_status_414">URI zu lang - Die vom Client angeforderte URL ist zu lang, um vom Server verarbeitet zu werden.</string>
<string name="http_status_415">Medientyp nicht unterstützt - Die Anfrage verwendet ein Medienformat, das der Server nicht unterstützt</string>
<string name="http_status_416">Bereich nicht erfüllbar - Der Server kann den im Range-Header-Feld der Anfrage angegebenen Wert nicht erfüllen.</string>
<string name="http_status_417">Erwartung fehlgeschlagen - Der Server kann die Anforderungen, die durch den Expect-Request-Header-Feld angegeben sind, nicht erfüllen</string>
<string name="http_status_426">Upgrade erforderlich - Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll zu verarbeiten, es sei denn, der Client wechselt zu einem anderen Protokoll.</string>
<string name="http_status_500">Interner Serverfehler - Der Server hat einen unerwarteten Fehler festgestellt und kann die Anfrage nicht abschließen</string>
<string name="http_status_501">Nicht implementiert - Der Server kann die Anfrage nicht erfüllen oder erkennt die Anfragemethode nicht</string>
<string name="http_status_502">Schlechtes Gateway - Der Server agiert als Gateway und erhielt eine ungültige Antwort vom Host</string>
<string name="http_status_503">Dienst nicht verfügbar - Dies tritt häufig auf, wenn ein Server überlastet ist oder gewartet wird</string>
<string name="http_status_504">Gateway-Timeout - Der Server agierte als Gateway oder Proxy und hat zu lange auf eine Antwort gewartet</string>
<string name="http_status_505">HTTP-Version nicht unterstützt - Der Server unterstützt die HTTP-Version der Anfrage nicht</string>
<string name="http_status_506">Variante verhandelt auch - Der Server hat einen internen Konfigurationsfehler</string>
<string name="http_status_507">Unzureichender Speicher - Der Server hat nicht genug Speicher, um die Anfrage erfolgreich zu verarbeiten</string>
<string name="http_status_508">Schleife erkannt - Der Server erkennt eine Endlosschleife, während er die Anfrage bearbeitet</string>
<string name="http_status_511">Netzwerk-Authentifizierung erforderlich - Der Client muss authentifiziert werden, um auf das Netzwerk zuzugreifen</string>
</resources>

View File

@ -434,6 +434,7 @@
<string name="settings">Configurações</string>
<string name="connectivity_type_always">Sempre</string>
<string name="connectivity_type_wifi_only">Somente wifi</string>
<string name="connectivity_type_unmetered_wifi_only">WiFi não medida</string>
<string name="connectivity_type_never">Nunca</string>
<string name="ui_feature_set_type_complete">Concluído</string>
<string name="ui_feature_set_type_simplified">Simplificado</string>
@ -620,6 +621,8 @@
<string name="server_did_not_provide_a_url_after_uploading">O servidor não forneceu uma URL após o upload</string>
<string name="could_not_download_from_the_server">Não foi possível baixar o arquivo de mídia carregado do servidor</string>
<string name="could_not_prepare_local_file_to_upload">Não foi possível preparar o arquivo local para enviar: %1$s</string>
<string name="failed_to_upload_with_message">Falha ao enviar: %1$s</string>
<string name="failed_to_delete_with_message">Falha ao excluir: %1$s</string>
<string name="edit_draft">Editar rascunho</string>
<string name="login_with_qr_code">Entrar com Código QR</string>
<string name="route">Rota</string>
@ -638,6 +641,7 @@
<string name="reply_description">Responder</string>
<string name="boost_or_quote_description">Impulsionar ou Citar</string>
<string name="like_description">Gostar</string>
<string name="change_reaction">Mudar reações rápidas</string>
<string name="profile_image_of_user">Foto de perfil de %1$s</string>
<string name="relay_info">Repassar %1$s</string>
<string name="expand_relay_list">Expandir lista de repasse</string>
@ -727,4 +731,33 @@
<string name="dvm_requesting_job">Solicitando Trabalho ao DVM</string>
<string name="nwc_payment_request">Pedido de pagamento enviado, aguardando confirmação da sua carteira</string>
<string name="dvm_waiting_to_confirm_payment">Aguardando o DVM confirmar o pagamento ou enviar resultados</string>
<string name="http_status_400">Requisição inválida - O servidor não pode ou não irá processar a requisição.</string>
<string name="http_status_401">Não autorizado - O usuário não possui credenciais de autenticação válidas</string>
<string name="http_status_402">Pagamento necessário - O servidor requer pagamento para completar a requisição</string>
<string name="http_status_403">Proibido - O usuário não tem direitos de acesso para fazer a requisição</string>
<string name="http_status_404">Não encontrado - O servidor não consegue encontrar o endereço solicitado</string>
<string name="http_status_405">Método não permitido - O servidor suporta o método da requisição, mas não o recurso alvo</string>
<string name="http_status_406">Não aceitável - O servidor não encontra nenhum conteúdo que satisfaça a requisição.</string>
<string name="http_status_407">Autenticação de Proxy necessária - O usuário não possui credenciais de autenticação válidas</string>
<string name="http_status_408">Tempo de requisição esgotado - O servidor esperou muito tempo por outra parte</string>
<string name="http_status_409">Conflito - O servidor não pode cumprir a requisição devido a um conflito com o recurso</string>
<string name="http_status_410">Indisponível - O conteúdo solicitado foi permanentemente excluído do servidor e não será restaurado</string>
<string name="http_status_411">Comprimento necessário - O servidor rejeita a requisição porque requer um comprimento definido</string>
<string name="http_status_412">Falha na pré-condição - As pré-condições do cabeçalho da requisição não foram atendidas pelo servidor</string>
<string name="http_status_413">Carga muito grande - A requisição é maior que os limites definidos pelo servidor, e o servidor se recusa a processá-la</string>
<string name="http_status_414">URI muito longa - A URL solicitada pelo cliente é muito longa para o servidor processar.</string>
<string name="http_status_415">Tipo de mídia não suportado - A requisição usa um formato de mídia que o servidor não suporta</string>
<string name="http_status_416">Faixa não satisfatória - O servidor não pode atender ao valor indicado no campo de cabeçalho Range da requisição.</string>
<string name="http_status_417">Falha na expectativa - O servidor não pode atender aos requisitos indicados pelo campo de cabeçalho Expect da requisição</string>
<string name="http_status_426">Atualização necessária - O servidor se recusa a processar a requisição com o protocolo atual, a menos que o cliente faça a atualização para um protocolo diferente.</string>
<string name="http_status_500">Erro interno do servidor - O servidor encontrou um erro inesperado e não pode completar a requisição</string>
<string name="http_status_501">Não implementado - O servidor não pode cumprir a requisição ou não reconhece o método da requisição</string>
<string name="http_status_502">Gateway inválido - O servidor atua como um gateway e recebeu uma resposta inválida do host</string>
<string name="http_status_503">Serviço indisponível - Isso geralmente ocorre quando um servidor está sobrecarregado ou em manutenção</string>
<string name="http_status_504">Tempo de gateway esgotado - O servidor estava atuando como um gateway ou proxy e esperou muito tempo por uma resposta</string>
<string name="http_status_505">Versão HTTP não suportada - O servidor não suporta a versão HTTP na requisição</string>
<string name="http_status_506">Variante também negocia - O servidor tem um erro de configuração interna</string>
<string name="http_status_507">Armazenamento insuficiente - O servidor não possui armazenamento suficiente para processar a requisição com sucesso</string>
<string name="http_status_508">Loop detectado - O servidor detecta um loop infinito enquanto processa a requisição</string>
<string name="http_status_511">Autenticação de rede necessária - O cliente deve ser autenticado para acessar a rede</string>
</resources>

View File

@ -425,6 +425,7 @@
<string name="settings">Inställningar</string>
<string name="connectivity_type_always">Alltid</string>
<string name="connectivity_type_wifi_only">Endast Wi-Fi</string>
<string name="connectivity_type_unmetered_wifi_only">Obegränsad WiFi</string>
<string name="connectivity_type_never">Aldrig</string>
<string name="ui_feature_set_type_complete">Slutförd</string>
<string name="ui_feature_set_type_simplified">Förenklad</string>
@ -614,6 +615,8 @@
<string name="server_did_not_provide_a_url_after_uploading">Servern gav inte en URL efter uppladdning</string>
<string name="could_not_download_from_the_server">Kunde inte ladda ner uppladdade medier från servern</string>
<string name="could_not_prepare_local_file_to_upload">Kunde inte förbereda lokal fil att ladda upp: %1$s</string>
<string name="failed_to_upload_with_message">Uppladdning misslyckades: %1$s</string>
<string name="failed_to_delete_with_message">Radering misslyckades: %1$s</string>
<string name="edit_draft">Redigera utkast</string>
<string name="login_with_qr_code">Logga in med QR-kod</string>
<string name="route">Rutt</string>
@ -633,6 +636,7 @@
<string name="reply_description">Svara</string>
<string name="boost_or_quote_description">Boosta eller citera</string>
<string name="like_description">Gilla</string>
<string name="change_reaction">Ändra Snabba Reaktioner</string>
<string name="profile_image_of_user">%1$s Profilbild</string>
<string name="relay_info">Relä %1$s</string>
<string name="expand_relay_list">Expandera relälistan</string>
@ -720,4 +724,33 @@
<string name="dvm_requesting_job">Begär jobb från DVM</string>
<string name="nwc_payment_request">Betalningsbegäran skickad, väntar på bekräftelse från din plånbok</string>
<string name="dvm_waiting_to_confirm_payment">Väntar på att DVM ska bekräfta betalningen eller skicka resultaten</string>
<string name="http_status_400">Felaktig begäran - Servern kan inte eller vill inte bearbeta begäran.</string>
<string name="http_status_401">Obehörig - Användaren har inte giltiga autentiseringsuppgifter</string>
<string name="http_status_402">Betalning krävs - Servern kräver betalning för att slutföra begäran</string>
<string name="http_status_403">Förbjuden - Användaren har inte rätt att göra begäran</string>
<string name="http_status_404">Ej hittad - Servern kan inte hitta den begärda adressen</string>
<string name="http_status_405">Metod ej tillåten - Servern stöder begärningsmetoden men inte målresursen</string>
<string name="http_status_406">Ej acceptabel - Servern hittar inget innehåll som uppfyller begäran.</string>
<string name="http_status_407">Proxyautentisering krävs - Användaren har inte giltiga autentiseringsuppgifter</string>
<string name="http_status_408">Begäran timeout - Servern väntade för länge på någon annan</string>
<string name="http_status_409">Konflikt - Servern kan inte uppfylla begäran på grund av en konflikt med resursen</string>
<string name="http_status_410">Borta - Det begärda innehållet har permanent raderats från servern och kommer inte att återställas</string>
<string name="http_status_411">Längd krävs - Servern avvisar begäran eftersom den kräver en definierad längd</string>
<string name="http_status_412">Förhandsvillkor misslyckades - Begärningens förhandsvillkor i huvudfält som servern inte uppfyller</string>
<string name="http_status_413">För stor last - Begäran är större än serverns definierade gränser och servern vägrar att bearbeta den</string>
<string name="http_status_414">URI för lång - URL som begärdes av klienten är för lång för servern att bearbeta.</string>
<string name="http_status_415">Osupporterat mediatyp - Begäran använder ett mediaformat som servern inte stöder</string>
<string name="http_status_416">Område ej tillfredsställt - Servern kan inte uppfylla värdet som anges i begärans Range-huvudfält.</string>
<string name="http_status_417">Förväntning misslyckades - Servern kan inte uppfylla kraven som anges av Expect-begärans huvudfält</string>
<string name="http_status_426">Uppgradering krävs - Servern vägrar att bearbeta begäran med det nuvarande protokollet om inte klienten uppgraderar till ett annat protokoll.</string>
<string name="http_status_500">Internt serverfel - Servern har stött på ett oväntat fel och kan inte slutföra begäran</string>
<string name="http_status_501">Ej implementerad - Servern kan inte uppfylla begäran eller känner inte igen begärningsmetoden</string>
<string name="http_status_502">Fel gateway - Servern agerar som en gateway och fick ett ogiltigt svar från värden</string>
<string name="http_status_503">Tjänst otillgänglig - Detta sker ofta när en server är överbelastad eller nere för underhåll</string>
<string name="http_status_504">Gateway timeout - Servern agerade som en gateway eller proxy och väntade för länge på ett svar</string>
<string name="http_status_505">HTTP-version ej stödd - Servern stöder inte HTTP-versionen i begäran</string>
<string name="http_status_506">Variant förhandlar också - Servern har ett internt konfigurationsfel</string>
<string name="http_status_507">Otillräckligt lagringsutrymme - Servern har inte tillräckligt med lagringsutrymme för att bearbeta begäran framgångsrikt</string>
<string name="http_status_508">Loop upptäckt - Servern upptäcker en oändlig loop medan den bearbetar begäran</string>
<string name="http_status_511">Nätverksautentisering krävs - Klienten måste autentiseras för att få tillgång till nätverket</string>
</resources>

View File

@ -56,7 +56,7 @@ class Relay(
val url: String,
val read: Boolean = true,
val write: Boolean = true,
val activeTypes: Set<FeedType> = FeedType.values().toSet(),
val activeTypes: Set<FeedType>,
) {
companion object {
// waits 3 minutes to reconnect once things fail

View File

@ -143,6 +143,7 @@ object MetaTagsParser {
"GT" to ">",
"nbsp" to " ",
"NBSP" to " ",
"middot" to "·",
)
val CHAR_REFS =
mapOf(
@ -153,6 +154,8 @@ object MetaTagsParser {
"039" to "'",
"8217" to "",
"8216" to "",
"8220" to "",
"8230" to "",
"39" to "'",
"ldquo" to "",
"rdquo" to "",
@ -160,6 +163,7 @@ object MetaTagsParser {
"hellip" to "",
"x27" to "'",
"nbsp" to " ",
"x2d" to "-",
)
fun replaceCharRefs(match: MatchResult): String {