Merge remote-tracking branch 'origin/profiles-list-management' into profiles-list-management
This commit is contained in:
@@ -16,8 +16,8 @@ android {
|
||||
applicationId "com.vitorpamplona.amethyst"
|
||||
minSdk libs.versions.android.minSdk.get().toInteger()
|
||||
targetSdk libs.versions.android.targetSdk.get().toInteger()
|
||||
versionCode 411
|
||||
versionName "0.92.6"
|
||||
versionCode 412
|
||||
versionName "0.92.7"
|
||||
buildConfigField "String", "RELEASE_NOTES_ID", "\"98f2acaf9b3eb70d87607942e576f9a086ac28adf37869da9a29f4815cecac86\""
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
+2
-1
@@ -154,8 +154,9 @@ class EventNotificationConsumer(
|
||||
acc: AccountSettings,
|
||||
) {
|
||||
if (
|
||||
event.createdAt > TimeUtils.fifteenMinutesAgo() &&
|
||||
// old event being re-broadcasted
|
||||
event.createdAt > TimeUtils.fifteenMinutesAgo() &&
|
||||
// don't display if it comes from me.
|
||||
event.pubKey != signer.pubKey
|
||||
) { // from the user
|
||||
Log.d(TAG, "Notifying")
|
||||
|
||||
@@ -121,6 +121,8 @@
|
||||
<string name="save_to_gallery">Guardar en la galería</string>
|
||||
<string name="image_saved_to_the_gallery">Imagen guardada en la galería</string>
|
||||
<string name="failed_to_save_the_image">Error al guardar la imagen</string>
|
||||
<string name="video_saved_to_the_gallery">Video guardado en la galería de videos del teléfono</string>
|
||||
<string name="failed_to_save_the_video">Error al guardar el video</string>
|
||||
<string name="upload_image">Cargar imagen</string>
|
||||
<string name="uploading">Cargando…</string>
|
||||
<string name="user_does_not_have_a_lightning_address_setup_to_receive_sats">El usuario no tiene una configuración de dirección Lightning para recibir sats</string>
|
||||
@@ -358,8 +360,11 @@
|
||||
<string name="delete_media_server">Eliminar servidor multimedia</string>
|
||||
<string name="upload_server_relays_nip95">Tus relés (NIP-95)</string>
|
||||
<string name="upload_server_relays_nip95_explainer">Los archivos están alojados en tus relés. Nuevo NIP: comprueba si son compatibles.</string>
|
||||
<string name="privacy_options">Opciones de privacidad</string>
|
||||
<string name="connect_via_tor_short">Configuración de Tor/Orbot</string>
|
||||
<string name="connect_via_tor">Conéctate a través de tu configuración de Orbot</string>
|
||||
<string name="connect_via_tor1">Ajustar</string>
|
||||
<string name="connect_via_tor2">Configuración de Tor</string>
|
||||
<string name="do_you_really_want_to_disable_tor_title">¿Desconectarse de tu Orbot/Tor?</string>
|
||||
<string name="do_you_really_want_to_disable_tor_text">Los datos se transferirán de inmediato en la red normal</string>
|
||||
<string name="yes">Sí</string>
|
||||
@@ -368,6 +373,7 @@
|
||||
<string name="follow_list_kind3follows">Todos los seguidos</string>
|
||||
<string name="follow_list_global">Global</string>
|
||||
<string name="follow_list_mute_list">Lista de silenciados</string>
|
||||
<string name="connect_through_your_orbot_setup_short">El puerto predeterminado es 9050</string>
|
||||
<string name="connect_through_your_orbot_setup_markdown"> ## Conéctate a través de Tor con Orbot
|
||||
\n\n1. Instala [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android).
|
||||
\n2. Inicia Orbot.
|
||||
@@ -377,6 +383,45 @@
|
||||
\n6. Presiona y activa el botón para usar Orbot como proxy.
|
||||
</string>
|
||||
<string name="orbot_socks_port">Puerto Socks de Orbot</string>
|
||||
<string name="use_internal_tor">Motor de Tor activo</string>
|
||||
<string name="use_internal_tor_explainer">Usar la versión interna u Orbot</string>
|
||||
<string name="tor_preset">Preconfiguración de Tor y privacidad</string>
|
||||
<string name="tor_preset_explainer">Modificar rápidamente todos los ajustes a continuación</string>
|
||||
<string name="tor_use_onion_address">Url/Relés tipo onion</string>
|
||||
<string name="tor_use_onion_address_explainer">Usar Tor para cualquier URL .onion</string>
|
||||
<string name="tor_use_dm_relays">Relés de mensajes directos</string>
|
||||
<string name="tor_use_dm_relays_explainer">Forzar Tor para enviar y recibir mensajes directos</string>
|
||||
<string name="tor_use_new_relays">Relés no confiables</string>
|
||||
<string name="tor_use_new_relays_explainer">Forzar Tor en la bandeja de salida/entrada</string>
|
||||
<string name="tor_use_trusted_relays">Relés de confianza</string>
|
||||
<string name="tor_use_trusted_relays_explainer">Forzar Tor en todos los relés de tus listas</string>
|
||||
<string name="tor_use_profile_pictures">Imágenes de perfil</string>
|
||||
<string name="tor_use_profile_pictures_explainer">Forzar Tor al cargar imágenes de perfil</string>
|
||||
<string name="tor_use_url_previews">Vistas previas de URL</string>
|
||||
<string name="tor_use_url_previews_explainer">Forzar Tor al cargar vistas previas de URL</string>
|
||||
<string name="tor_use_images">Imágenes</string>
|
||||
<string name="tor_use_images_explainer">Forzar Tor al cargar imágenes</string>
|
||||
<string name="tor_use_videos">Videos</string>
|
||||
<string name="tor_use_videos_explainer">Forzar Tor al cargar videos</string>
|
||||
<string name="tor_use_money_operations">Operaciones monetarias</string>
|
||||
<string name="tor_use_money_operations_explainer">Forzar Tor en transferencias de zaps, Lightning y Cashu</string>
|
||||
<string name="tor_use_nip05_verification">Verificación de dirección de Nostr</string>
|
||||
<string name="tor_use_nip05_verification_explainer">Forzar Tor al verificar direcciones NIP-05</string>
|
||||
<string name="tor_use_nip96_uploads">Subidas multimedia</string>
|
||||
<string name="tor_use_nip96_uploads_explainer">Forzar Tor al subir contenido</string>
|
||||
<string name="tor_internal">Interno</string>
|
||||
<string name="tor_external">Orbot</string>
|
||||
<string name="tor_off">Desactivado</string>
|
||||
<string name="tor_when_needed">Básico</string>
|
||||
<string name="tor_default">Predeterminado</string>
|
||||
<string name="tor_small_payloads">Todo excepto contenido multimedia</string>
|
||||
<string name="tor_full_privacy">Privacidad total</string>
|
||||
<string name="tor_custom">Personalizado</string>
|
||||
<string name="tor_when_needed_explainer">Usar Tor cuando lo requiera el servidor</string>
|
||||
<string name="tor_default_explainer">Ocultar tu IP de relés aleatorios</string>
|
||||
<string name="tor_small_payloads_explainer">Ocultar tu IP de todo, excepto imágenes y videos</string>
|
||||
<string name="tor_full_privacy_explainer">Oculta tu IP en todas las conexiones</string>
|
||||
<string name="tor_custom_explainer">Crea el tuyo</string>
|
||||
<string name="invalid_port_number">Número de puerto inválido</string>
|
||||
<string name="use_orbot">Usar Orbot</string>
|
||||
<string name="disconnect_from_your_orbot_setup">Desconectar Tor/Orbot</string>
|
||||
@@ -462,6 +507,7 @@
|
||||
<string name="community_no_descriptor">Esta comunidad no tiene descripción. Habla con el propietario para agregar una.</string>
|
||||
<string name="add_sensitive_content_label">Contenido delicado</string>
|
||||
<string name="add_sensitive_content_description">Agrega una advertencia de contenido sensible antes de mostrarlo</string>
|
||||
<string name="preferences">Preferencias de la app</string>
|
||||
<string name="settings">Configuración</string>
|
||||
<string name="connectivity_type_always">Siempre</string>
|
||||
<string name="connectivity_type_wifi_only">Solo Wi-Fi</string>
|
||||
@@ -474,6 +520,7 @@
|
||||
<string name="light">Claro</string>
|
||||
<string name="dark">Oscuro</string>
|
||||
<string name="application_preferences">Preferencias de la aplicación</string>
|
||||
<string name="wallet_connect">Wallet Connect</string>
|
||||
<string name="language">Idioma</string>
|
||||
<string name="theme">Tema</string>
|
||||
<string name="automatically_load_images_gifs">Vista previa de imagen</string>
|
||||
|
||||
@@ -121,6 +121,8 @@
|
||||
<string name="save_to_gallery">Guardar en la galería</string>
|
||||
<string name="image_saved_to_the_gallery">Imagen guardada en la galería</string>
|
||||
<string name="failed_to_save_the_image">Error al guardar la imagen</string>
|
||||
<string name="video_saved_to_the_gallery">Video guardado en la galería de videos del teléfono</string>
|
||||
<string name="failed_to_save_the_video">Error al guardar el video</string>
|
||||
<string name="upload_image">Subir imagen</string>
|
||||
<string name="uploading">Subiendo…</string>
|
||||
<string name="user_does_not_have_a_lightning_address_setup_to_receive_sats">El usuario no tiene configurada una dirección de Lightning para recibir sats</string>
|
||||
@@ -358,8 +360,11 @@
|
||||
<string name="delete_media_server">Eliminar servidor multimedia</string>
|
||||
<string name="upload_server_relays_nip95">Tus relés (NIP-95)</string>
|
||||
<string name="upload_server_relays_nip95_explainer">Los archivos están alojados en tus relés. Nuevo NIP: comprueba si son compatibles.</string>
|
||||
<string name="privacy_options">Opciones de privacidad</string>
|
||||
<string name="connect_via_tor_short">Configuración de Tor/Orbot</string>
|
||||
<string name="connect_via_tor">Conéctate a través de tu configuración de Orbot</string>
|
||||
<string name="connect_via_tor1">Ajustar</string>
|
||||
<string name="connect_via_tor2">Configuración de Tor</string>
|
||||
<string name="do_you_really_want_to_disable_tor_title">¿Desconectarse de tu Orbot/Tor?</string>
|
||||
<string name="do_you_really_want_to_disable_tor_text">Los datos se transferirán de inmediato en la red normal</string>
|
||||
<string name="yes">Sí</string>
|
||||
@@ -368,6 +373,7 @@
|
||||
<string name="follow_list_kind3follows">Todos los seguidos</string>
|
||||
<string name="follow_list_global">Global</string>
|
||||
<string name="follow_list_mute_list">Lista de silenciados</string>
|
||||
<string name="connect_through_your_orbot_setup_short">El puerto predeterminado es 9050</string>
|
||||
<string name="connect_through_your_orbot_setup_markdown"> ## Conéctate a través de Tor con Orbot
|
||||
\n\n1. Instala [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android).
|
||||
\n2. Inicia Orbot.
|
||||
@@ -377,6 +383,45 @@
|
||||
\n6. Presiona y activa el botón para usar Orbot como proxy.
|
||||
</string>
|
||||
<string name="orbot_socks_port">Puerto Socks de Orbot</string>
|
||||
<string name="use_internal_tor">Motor de Tor activo</string>
|
||||
<string name="use_internal_tor_explainer">Usar la versión interna u Orbot</string>
|
||||
<string name="tor_preset">Preconfiguración de Tor y privacidad</string>
|
||||
<string name="tor_preset_explainer">Modificar rápidamente todos los ajustes a continuación</string>
|
||||
<string name="tor_use_onion_address">Url/Relés tipo onion</string>
|
||||
<string name="tor_use_onion_address_explainer">Usar Tor para cualquier URL .onion</string>
|
||||
<string name="tor_use_dm_relays">Relés de mensajes directos</string>
|
||||
<string name="tor_use_dm_relays_explainer">Forzar Tor para enviar y recibir mensajes directos</string>
|
||||
<string name="tor_use_new_relays">Relés no confiables</string>
|
||||
<string name="tor_use_new_relays_explainer">Forzar Tor en la bandeja de salida/entrada</string>
|
||||
<string name="tor_use_trusted_relays">Relés de confianza</string>
|
||||
<string name="tor_use_trusted_relays_explainer">Forzar Tor en todos los relés de tus listas</string>
|
||||
<string name="tor_use_profile_pictures">Imágenes de perfil</string>
|
||||
<string name="tor_use_profile_pictures_explainer">Forzar Tor al cargar imágenes de perfil</string>
|
||||
<string name="tor_use_url_previews">Vistas previas de URL</string>
|
||||
<string name="tor_use_url_previews_explainer">Forzar Tor al cargar vistas previas de URL</string>
|
||||
<string name="tor_use_images">Imágenes</string>
|
||||
<string name="tor_use_images_explainer">Forzar Tor al cargar imágenes</string>
|
||||
<string name="tor_use_videos">Videos</string>
|
||||
<string name="tor_use_videos_explainer">Forzar Tor al cargar videos</string>
|
||||
<string name="tor_use_money_operations">Operaciones monetarias</string>
|
||||
<string name="tor_use_money_operations_explainer">Forzar Tor en transferencias de zaps, Lightning y Cashu</string>
|
||||
<string name="tor_use_nip05_verification">Verificación de dirección de Nostr</string>
|
||||
<string name="tor_use_nip05_verification_explainer">Forzar Tor al verificar direcciones NIP-05</string>
|
||||
<string name="tor_use_nip96_uploads">Subidas multimedia</string>
|
||||
<string name="tor_use_nip96_uploads_explainer">Forzar Tor al subir contenido</string>
|
||||
<string name="tor_internal">Interno</string>
|
||||
<string name="tor_external">Orbot</string>
|
||||
<string name="tor_off">Desactivado</string>
|
||||
<string name="tor_when_needed">Básico</string>
|
||||
<string name="tor_default">Predeterminado</string>
|
||||
<string name="tor_small_payloads">Todo excepto contenido multimedia</string>
|
||||
<string name="tor_full_privacy">Privacidad total</string>
|
||||
<string name="tor_custom">Personalizado</string>
|
||||
<string name="tor_when_needed_explainer">Usar Tor cuando lo requiera el servidor</string>
|
||||
<string name="tor_default_explainer">Ocultar tu IP de relés aleatorios</string>
|
||||
<string name="tor_small_payloads_explainer">Ocultar tu IP de todo, excepto imágenes y videos</string>
|
||||
<string name="tor_full_privacy_explainer">Ocultar su IP en todas las conexiones</string>
|
||||
<string name="tor_custom_explainer">Crea el tuyo</string>
|
||||
<string name="invalid_port_number">Número de puerto inválido</string>
|
||||
<string name="use_orbot">Usar Orbot</string>
|
||||
<string name="disconnect_from_your_orbot_setup">Desconectar Tor/Orbot</string>
|
||||
@@ -462,6 +507,7 @@
|
||||
<string name="community_no_descriptor">Esta comunidad no tiene descripción. Habla con el propietario para agregar una.</string>
|
||||
<string name="add_sensitive_content_label">Contenido delicado</string>
|
||||
<string name="add_sensitive_content_description">Agrega una advertencia de contenido sensible antes de mostrarlo</string>
|
||||
<string name="preferences">Preferencias de la app</string>
|
||||
<string name="settings">Configuración</string>
|
||||
<string name="connectivity_type_always">Siempre</string>
|
||||
<string name="connectivity_type_wifi_only">Solo Wi-Fi</string>
|
||||
@@ -474,6 +520,7 @@
|
||||
<string name="light">Claro</string>
|
||||
<string name="dark">Oscuro</string>
|
||||
<string name="application_preferences">Preferencias de la aplicación</string>
|
||||
<string name="wallet_connect">Wallet Connect</string>
|
||||
<string name="language">Idioma</string>
|
||||
<string name="theme">Tema</string>
|
||||
<string name="automatically_load_images_gifs">Vista previa de imagen</string>
|
||||
|
||||
@@ -121,6 +121,8 @@
|
||||
<string name="save_to_gallery">Guardar en la galería</string>
|
||||
<string name="image_saved_to_the_gallery">Imagen guardada en la galería</string>
|
||||
<string name="failed_to_save_the_image">Error al guardar la imagen</string>
|
||||
<string name="video_saved_to_the_gallery">Video guardado en la galería de videos del teléfono</string>
|
||||
<string name="failed_to_save_the_video">Error al guardar el video</string>
|
||||
<string name="upload_image">Subir imagen</string>
|
||||
<string name="uploading">Subiendo…</string>
|
||||
<string name="user_does_not_have_a_lightning_address_setup_to_receive_sats">El usuario no tiene configurada una dirección de Lightning para recibir sats</string>
|
||||
@@ -358,8 +360,11 @@
|
||||
<string name="delete_media_server">Eliminar servidor multimedia</string>
|
||||
<string name="upload_server_relays_nip95">Tus relés (NIP-95)</string>
|
||||
<string name="upload_server_relays_nip95_explainer">Los archivos están alojados en tus relés. Nuevo NIP: comprueba si son compatibles.</string>
|
||||
<string name="privacy_options">Opciones de privacidad</string>
|
||||
<string name="connect_via_tor_short">Configuración de Tor/Orbot</string>
|
||||
<string name="connect_via_tor">Conéctate a través de tu configuración de Orbot</string>
|
||||
<string name="connect_via_tor1">Ajustar</string>
|
||||
<string name="connect_via_tor2">Configuración de Tor</string>
|
||||
<string name="do_you_really_want_to_disable_tor_title">¿Desconectarse de tu Orbot/Tor?</string>
|
||||
<string name="do_you_really_want_to_disable_tor_text">Los datos se transferirán de inmediato en la red normal</string>
|
||||
<string name="yes">Sí</string>
|
||||
@@ -368,6 +373,7 @@
|
||||
<string name="follow_list_kind3follows">Todos los seguidos</string>
|
||||
<string name="follow_list_global">Global</string>
|
||||
<string name="follow_list_mute_list">Lista de silenciados</string>
|
||||
<string name="connect_through_your_orbot_setup_short">El puerto predeterminado es 9050</string>
|
||||
<string name="connect_through_your_orbot_setup_markdown"> ## Conéctate a través de Tor con Orbot
|
||||
\n\n1. Instala [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android).
|
||||
\n2. Inicia Orbot.
|
||||
@@ -377,6 +383,45 @@
|
||||
\n6. Presiona y activa el botón para usar Orbot como proxy.
|
||||
</string>
|
||||
<string name="orbot_socks_port">Puerto Socks de Orbot</string>
|
||||
<string name="use_internal_tor">Motor de Tor activo</string>
|
||||
<string name="use_internal_tor_explainer">Usar la versión interna u Orbot</string>
|
||||
<string name="tor_preset">Preconfiguración de Tor y privacidad</string>
|
||||
<string name="tor_preset_explainer">Modificar rápidamente todos los ajustes a continuación</string>
|
||||
<string name="tor_use_onion_address">Url/Relés tipo onion</string>
|
||||
<string name="tor_use_onion_address_explainer">Usar Tor para cualquier URL .onion</string>
|
||||
<string name="tor_use_dm_relays">Relés de mensajes directos</string>
|
||||
<string name="tor_use_dm_relays_explainer">Forzar Tor para enviar y recibir mensajes directos</string>
|
||||
<string name="tor_use_new_relays">Relés no confiables</string>
|
||||
<string name="tor_use_new_relays_explainer">Forzar Tor en la bandeja de salida/entrada</string>
|
||||
<string name="tor_use_trusted_relays">Relés de confianza</string>
|
||||
<string name="tor_use_trusted_relays_explainer">Forzar Tor en todos los relés de tus listas</string>
|
||||
<string name="tor_use_profile_pictures">Imágenes de perfil</string>
|
||||
<string name="tor_use_profile_pictures_explainer">Forzar Tor al cargar imágenes de perfil</string>
|
||||
<string name="tor_use_url_previews">Vistas previas de URL</string>
|
||||
<string name="tor_use_url_previews_explainer">Forzar Tor al cargar vistas previas de URL</string>
|
||||
<string name="tor_use_images">Imágenes</string>
|
||||
<string name="tor_use_images_explainer">Forzar Tor al cargar imágenes</string>
|
||||
<string name="tor_use_videos">Videos</string>
|
||||
<string name="tor_use_videos_explainer">Forzar Tor al cargar videos</string>
|
||||
<string name="tor_use_money_operations">Operaciones monetarias</string>
|
||||
<string name="tor_use_money_operations_explainer">Forzar Tor en transferencias de zaps, Lightning y Cashu</string>
|
||||
<string name="tor_use_nip05_verification">Verificación de dirección de Nostr</string>
|
||||
<string name="tor_use_nip05_verification_explainer">Forzar Tor al verificar direcciones NIP-05</string>
|
||||
<string name="tor_use_nip96_uploads">Subidas multimedia</string>
|
||||
<string name="tor_use_nip96_uploads_explainer">Forzar Tor al subir contenido</string>
|
||||
<string name="tor_internal">Interno</string>
|
||||
<string name="tor_external">Orbot</string>
|
||||
<string name="tor_off">Desactivado</string>
|
||||
<string name="tor_when_needed">Básico</string>
|
||||
<string name="tor_default">Predeterminado</string>
|
||||
<string name="tor_small_payloads">Todo excepto contenido multimedia</string>
|
||||
<string name="tor_full_privacy">Privacidad total</string>
|
||||
<string name="tor_custom">Personalizado</string>
|
||||
<string name="tor_when_needed_explainer">Usar Tor cuando lo requiera el servidor</string>
|
||||
<string name="tor_default_explainer">Ocultar tu IP de relés aleatorios</string>
|
||||
<string name="tor_small_payloads_explainer">Ocultar tu IP de todo, excepto imágenes y videos</string>
|
||||
<string name="tor_full_privacy_explainer">Oculta tu IP en todas las conexiones</string>
|
||||
<string name="tor_custom_explainer">Crea el tuyo</string>
|
||||
<string name="invalid_port_number">Número de puerto inválido</string>
|
||||
<string name="use_orbot">Usar Orbot</string>
|
||||
<string name="disconnect_from_your_orbot_setup">Desconectar Tor/Orbot</string>
|
||||
@@ -462,6 +507,7 @@
|
||||
<string name="community_no_descriptor">Esta comunidad no tiene descripción. Habla con el propietario para agregar una.</string>
|
||||
<string name="add_sensitive_content_label">Contenido delicado</string>
|
||||
<string name="add_sensitive_content_description">Agrega una advertencia de contenido sensible antes de mostrarlo</string>
|
||||
<string name="preferences">Preferencias de la app</string>
|
||||
<string name="settings">Configuración</string>
|
||||
<string name="connectivity_type_always">Siempre</string>
|
||||
<string name="connectivity_type_wifi_only">Solo Wi-Fi</string>
|
||||
@@ -474,6 +520,7 @@
|
||||
<string name="light">Claro</string>
|
||||
<string name="dark">Oscuro</string>
|
||||
<string name="application_preferences">Preferencias de la aplicación</string>
|
||||
<string name="wallet_connect">Wallet Connect</string>
|
||||
<string name="language">Idioma</string>
|
||||
<string name="theme">Tema</string>
|
||||
<string name="automatically_load_images_gifs">Vista previa de imagen</string>
|
||||
|
||||
@@ -93,4 +93,21 @@ class Nip04Test {
|
||||
assertTrue(Nip04.isNIP04("zJxfaJ32rN5Dg1ODjOlEew==?iv=EV5bUjcc4OX2Km/zPp4ndQ=="))
|
||||
assertTrue(Nip04.isNIP04("6f8dMstm+udOu7yipSn33orTmwQpWbtfuY95NH+eTU1kArysWJIDkYgI2D25EAGIDJsNd45jOJ2NbVOhFiL3ZP/NWsTwXokk34iyHyA/lkjzugQ1bHXoMD1fP/Ay4hB4al1NHb8HXHKZaxPrErwdRDb8qa/I6dXb/1xxyVvNQBHHvmsM5yIFaPwnCN1DZqXf2KbTA/Ekz7Hy+7R+Sy3TXLQDFpWYqykppkXc7Fs0qSuPRyxz5+anuN0dxZa9GTwTEnBrZPbthKkNRrvZMdTGJ6WumOh9aUq8OJJWy9aOgsXvs7qjN1UqcCqQqYaVnEOhCaqWNDsVtsFrVDj+SaLIBvCiomwF4C4nIgngJ5I69tx0UNI0q+ZnvOGQZ7m1PpW2NYP7Yw43HJNdeUEQAmdCPnh/PJwzLTnIxHmQU7n7SPlMdV0SFa6H8y2HHvex697GAkyE5t8c2uO24OnqIwF1tR3blIqXzTSRl0GA6QvrSj2p4UtnWjvF7xT7RiIEyTtgU/AsihTrXyXzWWZaIBJogpgw6erlZqWjCH7sZy/WoGYEiblobOAqMYxax6vRbeuGtoYksr/myX+x9rfLrYuoDRTw4woXOLmMrrj+Mf0TbAgc3SjdkqdsPU1553rlSqIEZXuFgoWmxvVQDtekgTYyS97G81TDSK9nTJT5ilku8NVq2LgtBXGwsNIw/xekcOUzJke3kpnFPutNaexR1VF3ohIuqRKYRGcd8ADJP2lfwMcaGRiplAmFoaVS1YUhQwYFNq9rMLf7YauRGV4BJg/t9srdGxf5RoKCvRo+XM/nLxxysTR9MVaEP/3lDqjwChMxs+eWfLHE5vRWV8hUEqdrWNZV29gsx5nQpzJ4PARGZVu310pQzc6JAlc2XAhhFk6RamkYJnmCSMnb/RblzIATBi2kNrCVAlaXIon188inB62rEpZGPkRIP7PUfu27S/elLQHBHeGDsxOXsBRo1gl3te+raoBHsxo6zvRnYbwdAQa5taDE63eh+fT6kFI+xYmXNAQkU8Dp0MVhEh4JQI06Ni/AKrvYpC95TXXIphZcF+/Pv/vaGkhG2X9S3uhugwWK?iv=2vWkOQQi0WynNJz/aZ4k2g=="))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isNIP04EncodeWithBug() {
|
||||
assertTrue(
|
||||
Nip04.isNIP04(
|
||||
"QOAYBWa88ConWs2C4kSvNqAcowCtg0ZRtAl7FyLSv9VMaJH4oCiDx0h8VLBnV97HdE4lv" +
|
||||
"TW7AYC1eEw8/t1dbe0qRc3XrOt7MrPAO8yqpy1/3lFB1+10kip0+KdgT8Quvv02wTP8Dqi" +
|
||||
"xpr2fliAIG2ONvDn+O5V0q9aVUN9HitgL/myTyR0T42edmxWeZoMBEOKvJyO80FekSsgVL" +
|
||||
"ASafA/T5z4xs8oG88pSe9wSbSsw0xNjJeh3xLRCLuEuA9KI8hQ1Ys9nEax2UlaB/IL3o77" +
|
||||
"OwBL+rrdUbNHTxYifgygRhg3BaXMsXRFNJbqYeMaRaNbvHkLVAQV2jLY4P/cKHBjEcTC/f" +
|
||||
"lrCc2NCYF34rOQUY5EJVnFzM8qYVw6xNupBHTS7WFx1r60cPjG19P/+yoiTZ6bPdHTU0X2" +
|
||||
"t64ovF2YWUq6/iKAclMaZDhWfrKqf82e62oIff55WQw2bw8A/jtBQVCf66EtEJ2OSFxNaZ" +
|
||||
"rO+A4oLkHDCnAV+6fYzwo89gPOvORcVvSvg55yGiBFUZx9EHS6kdH1SU80/Mbxe2oI=" +
|
||||
"?iv=gxz9pUFJFZHuV+D+hgKEOw==-null",
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,14 +153,21 @@ class Nip04(
|
||||
}
|
||||
|
||||
fun isNIP04(encoded: String): Boolean {
|
||||
val l = encoded.length
|
||||
// cleaning up some bug from some client.
|
||||
val cleanedUp = encoded.removeSuffix("-null")
|
||||
|
||||
val l = cleanedUp.length
|
||||
if (l < 28) return false
|
||||
return encoded[l - 28] == '?' && encoded[l - 27] == 'i' && encoded[l - 26] == 'v' && encoded[l - 25] == '='
|
||||
return cleanedUp[l - 28] == '?' &&
|
||||
cleanedUp[l - 27] == 'i' &&
|
||||
cleanedUp[l - 26] == 'v' &&
|
||||
cleanedUp[l - 25] == '='
|
||||
}
|
||||
|
||||
fun decodeFromNIP04(payload: String): EncryptedInfo? =
|
||||
try {
|
||||
val parts = payload.split("?iv=")
|
||||
// cleaning up some bug from some client.
|
||||
val parts = payload.removeSuffix("-null").split("?iv=")
|
||||
EncryptedInfo(
|
||||
ciphertext = Base64.getDecoder().decode(parts[0]),
|
||||
nonce = Base64.getDecoder().decode(parts[1]),
|
||||
|
||||
Reference in New Issue
Block a user