From 2a7c4bda9e4d3241a8ecb146bb8573f4ff535a7d Mon Sep 17 00:00:00 2001 From: Rino Russo Date: Thu, 3 Oct 2024 02:10:48 +0200 Subject: [PATCH 1/6] New translations strings.xml (Interlingua) --- composeApp/src/androidMain/res/values-ia/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composeApp/src/androidMain/res/values-ia/strings.xml b/composeApp/src/androidMain/res/values-ia/strings.xml index f78d3bd32..ef8ee3caa 100644 --- a/composeApp/src/androidMain/res/values-ia/strings.xml +++ b/composeApp/src/androidMain/res/values-ia/strings.xml @@ -471,7 +471,7 @@ Nigre moderne Nigre intense Monstrar le barra de actiones - Transition effect + Effecto de transition Expand Fade Scala @@ -566,7 +566,7 @@ Striped Brilliant Excambiar le controlos con le chronologia - Enable lyrics popup message + Activa le message emergente del parolas de canto Exclude songs with duration limit If enabled, songs with duration over the limit will be excluded, applied to mytop and playback queue Nulle registro disponibile From 6794af9efe526e913ce61f1fb5ec6da9c09ce9d9 Mon Sep 17 00:00:00 2001 From: Rino Russo Date: Thu, 3 Oct 2024 03:23:31 +0200 Subject: [PATCH 2/6] New translations strings.xml (Interlingua) --- composeApp/src/androidMain/res/values-ia/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composeApp/src/androidMain/res/values-ia/strings.xml b/composeApp/src/androidMain/res/values-ia/strings.xml index ef8ee3caa..473a11bee 100644 --- a/composeApp/src/androidMain/res/values-ia/strings.xml +++ b/composeApp/src/androidMain/res/values-ia/strings.xml @@ -576,7 +576,7 @@ Prevent play songs with age limitation Private Systema - Cannot rename a monthly or piped playlist + Non pote renominar un lista de reproduction mensual o de piped DEPURATION Activar registro de depuration Si es activate, crea un file de registro pro evidentiar le errores @@ -694,9 +694,9 @@ Moderne Essential Removes Liked and Playlist songs from Radio - Discover has been applied to radio, removed songs: %s + Discoperir ha essite applicate al radio, cantos removite: %s Numero de cantos a monstrar - Discover has been applied to queue, removed songs: %s + Discoperir ha essite applicate al cauda, cantos removite: %s Pause on volume zero Pauses the player when the volume reaches 0 and resumes when the volume is greater than 0 Qualitate From b8a68d3359f357e8a80bafd926024aca40cd54ce Mon Sep 17 00:00:00 2001 From: Rino Russo Date: Thu, 3 Oct 2024 19:44:10 +0200 Subject: [PATCH 3/6] New translations strings.xml (Portuguese) --- .../src/androidMain/res/values-pt/strings.xml | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/composeApp/src/androidMain/res/values-pt/strings.xml b/composeApp/src/androidMain/res/values-pt/strings.xml index 8859f9d8c..2effe835d 100644 --- a/composeApp/src/androidMain/res/values-pt/strings.xml +++ b/composeApp/src/androidMain/res/values-pt/strings.xml @@ -44,9 +44,9 @@ Editar letra Pesquisar letras de músicas online Buscar letras novamente - Id + ID Itag - Bitrate + Taxa de bits Tamanho Em cache Intensidade do som @@ -585,7 +585,7 @@ Habilitar sincronização de piped Mudar instância Nome de utilizador - Password + Palavra-passe Desconectar Conectar Ligado a %s @@ -616,29 +616,29 @@ Arco-íris Fluido Tema fluido Gradiente preto na parte inferior - Glow + Brilho Show Bottom Gradient Ativar contorno de texto Localização da cache - Private cache location, can\'t be cleaned by the system - This file seems to have an unsupported format - Charts - Thumbnail Type - Show Thumbnail for visualizer - Android Head unit - Extra space at top - Restart - Game Over! - White - Black - Highlight - Thin Bar - Button Zoom Out Animation - Shrink thumbnail when paused - Up Next + Localização da cache privada, não pode ser limpa pelo sistema + Este arquivo parece ter um formato incompatível + Gráficos + Tipo de miniatura + Mostrar miniatura para o visualizador + Unidade de Android Head + Espaço extra no topo + Reniciar + Fim do Jogo! + Branco + Preto + Destacar + Barra fina + Animação do botão de diminuir o zoom + Encolher miniatura enquanto parado + A seguir Show Next two Songs in Queue - Show Album Cover - Do not translate + Mostrar capa do álbum + Não traduzir Sleep timer delayed at end of song Lyrics Background Landscape Layout From 785bce2609ab019e883f8e68df7f311fedca62e6 Mon Sep 17 00:00:00 2001 From: Rino Russo Date: Thu, 3 Oct 2024 21:13:20 +0200 Subject: [PATCH 4/6] New translations strings.xml (Portuguese) --- .../src/androidMain/res/values-pt/strings.xml | 154 +++++++++--------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/composeApp/src/androidMain/res/values-pt/strings.xml b/composeApp/src/androidMain/res/values-pt/strings.xml index 2effe835d..f8aa0134a 100644 --- a/composeApp/src/androidMain/res/values-pt/strings.xml +++ b/composeApp/src/androidMain/res/values-pt/strings.xml @@ -186,7 +186,7 @@ Claro Transferidos Desligar - Transferência de dados + Transferência Predefinição Dinâmico Descobrir @@ -206,7 +206,7 @@ Ativar/desativar letra Ao tocar na miniatura O efeito de visualizador requer permissão do microfone, autoriza-o por favor. - Fantasia + Chique Circular Desativado Empilhado @@ -417,7 +417,7 @@ Pastas Mostrar pastas no \"No Dispositivo\" Dinamarquês (dansk) - Sérvio latino (Српски латински) + Sérvio latino (Sprski latinski) Desselecionar Mostrar próximas músicas no player Mostrar tempo restante da música @@ -639,93 +639,93 @@ Show Next two Songs in Queue Mostrar capa do álbum Não traduzir - Sleep timer delayed at end of song - Lyrics Background - Landscape Layout - Layout - Layout 2 is Recommended only for Big Screens + O temporizador de sono adiado no final da música + Fundo das letras + Disposição horizontal + Disposição + Disposição 2 é só recomendado para ecrãs maiores Hide Previous and Next Songs - One Song - Two Songs - Debug Mode Enabled - Debug mode is enabled, remember to disable it in settings - Tap to open Queue - Past day - Past week - Past month - Past year - All time - View top %s of … - Episodes + Uma música + Duas músicas + Modo de depuração ativado + Modo de depuração ativado, lembre-se de desativá-lo nas definições + Toque para abrir fila + Dia passado + Semana passada + Mês passado + Ano passado + Desde sempre + Ver top %s de … + Episódios Podcasts - Playlist Indicator - Indicates if the song is already added to a Playlist - Deleted - Song is Present in one of the Playlists - Show Stats for Nerds in Player - Discover - Removes Liked and Playlist songs from queue - Customize - Blur effect - Medley duration - Playback speed - Playback pitch - Playback Volume - Device volume - Malayalam - Suggestions - Saved searches - Change song with the volume keys - Volume UP next and volume DOWN previous song - Paste - No suggestions - Show discover button - Player Type - No Blur when Lyrics is Disabled - Fading Edge - Carousel View - Size of Carousel - Added to play next - Paused with volume zero - Fade audio - Fade audio when song is paused or played - Auto Sync Imported Playlists + Indicador de playlist + Indica se a música já foi adicionada a uma playlist + Apagado + A música está presente em uma das playlists + Mostrar estatísticas avançadas no leitor + Descobrir + Remove as músicas favoritas e da playlist da fila + Personalizar + Efeito de desfocar + Duração do medley + Velocidade de reprodução + Tom de reprodução + Volume de reprodução + Volume do dispositivo + Malaiala (മലയാളം) + Sugestões + Pesquisas salvas + Trocar música com os botões de volume + Aumentar volume para a próxima música e diminuir volume para a música anterior + Colar + Sem sugestões + Mostrar botão de descobrir + Tipo de leitor + Sem desfoque quando as letras estão desativadas + Borda desvanecente + Vista de carrossel + Tamanho do carrossel + Adicionado para tocar a seguir + Pausado com volume zero + Desvanecer áudio + Desvanecer áudio quando a música é pausada ou reproduzida + Sincronizar automaticamente playlists importadas Tipo de mensagem Moderno Essencial - Removes Liked and Playlist songs from Radio - Discover has been applied to radio, removed songs: %s - Songs number to show - Discover has been applied to queue, removed songs: %s - Pause on volume zero + Remove as músicas favoritas e da playlist da rádio + Descobrir foi aplicado à rádio, músicas removidas: %s + Número de músicas a mostrar + Descobrir foi aplicado à fila, músicas removidas: %s + Pausar no volume zero Pauses the player when the volume reaches 0 and resumes when the volume is greater than 0 Qualidade Valor deve ser um endereço IP Deslize para cima para abrir a fila Show info with icons %1$s ms - Minimum silence length - The minimum time the audio has to be silent to get skipped - Player has to be restarted for the changes to be effective! - Restart service - Pause listen history + Duração mínima de silêncio + O tempo mínimo que o áudio precisa estar em silêncio para ser ignorado + O leitor precisa de ser reiniciado para que as alterações sejam aplicadas! + Reiniciar serviço + Pausar o histórico de escuta Tipo de fila - Top songs - Top artists - Interlingua - No network connection - Connection timeout - Unknown error + Músicas populares + Artistas principais + Interlíngua (Interlingua) + Sem ligação de rede + Tempo de conexão esgotado + Erro desconhecido O senhor realmente deseja excluir esta música? Ela será excluída do banco de dados. Esta ação é irreversível. - Check Now - No update available - Galician - Norwegian - Translate to %s - Traslate to other language - Show video button + Verificar agora + Nenhuma atualização disponível + Galego (Galego) + Norueguês (Norsk) + Traduzir para %s + Traduzir para outra língua + Mostrar botão de vídeo Telegram - Join the group on Telegram + Junte-se ao grupo no Telegram GitHub Atualizar Tem a certeza que quer esconder esta música? O tempo de reprodução e a memória transitória serão apagados. Esta ação é irreversível. @@ -736,7 +736,7 @@ Junte-se à comunidade no Reddit O temporizador de suspensão terminou Discord - Habilitar presença rica + Ativar Rich Presence Desconectar Conectar Conectado à conta Discord From cc353b9d82d9b9a53112d0ff3c486a3f5ce304df Mon Sep 17 00:00:00 2001 From: knighthat Date: Thu, 3 Oct 2024 16:23:11 -0500 Subject: [PATCH 5/6] visualize developers/designers section --- .../rimusic/ui/screens/settings/About.kt | 43 +++-- .../ui/screens/settings/SettingsScreen.kt | 3 +- .../ui/screens/settings/about/DevBoard.kt | 61 ++++++++ .../ui/screens/settings/about/Developer.kt | 147 ++++++++++++++++++ .../git_pull_request_outline.xml | 36 +++++ .../src/androidMain/res/raw/contributors.json | 135 ++++++++++++++++ 6 files changed, 400 insertions(+), 25 deletions(-) create mode 100644 composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/DevBoard.kt create mode 100644 composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/Developer.kt create mode 100644 composeApp/src/androidMain/res/drawable-anydpi/git_pull_request_outline.xml create mode 100644 composeApp/src/androidMain/res/raw/contributors.json diff --git a/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/About.kt b/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/About.kt index 05a2b25c9..1319356d3 100644 --- a/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/About.kt +++ b/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/About.kt @@ -1,10 +1,12 @@ package it.fast4x.rimusic.ui.screens.settings +import android.content.Context import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -26,11 +28,12 @@ import it.fast4x.rimusic.utils.secondary import me.knighthat.colorPalette import me.knighthat.navBarPos import me.knighthat.typography +import me.knighthat.ui.screens.settings.about.DevBoard @ExperimentalAnimationApi @Composable -fun About() { +fun About( context: Context ) { val uriHandler = LocalUriHandler.current Column( @@ -126,10 +129,18 @@ fun About() { SettingsGroupSpacer() - SettingsEntryGroupText(title = stringResource(R.string.contributors)) - SettingsDescription(text = stringResource(R.string.in_alphabetical_order)) + HeaderWithIcon( + title = stringResource(R.string.contributors), + iconId = 0, + enabled = false, + showIcon = true, + modifier = Modifier, + onClick = {} + ) + SettingsGroupSpacer() - SettingsTopDescription( text ="Translator:") + SettingsEntryGroupText(title = "Translators") + SettingsDescription(text = stringResource(R.string.in_alphabetical_order)) SettingsTopDescription( text = "2010furs \n"+ "821938089 \n"+ @@ -205,26 +216,10 @@ fun About() { "ZeroZero00 \n" ) - SettingsTopDescription( text ="Developer / Designer:") - SettingsTopDescription( text = - "25huizengek1 \n"+ - "821938089 \n"+ - "aneesh1122\n"+ - "bbyeen \n"+ - "Craeckie \n"+ - "DanielSevillano \n"+ - "Fast4x \n"+ - "Ikanakova \n"+ - "Iscle \n"+ - "JZITNIK-github \n" + - "Locxter \n"+ - "lrusso96 \n"+ - "martkol \n"+ - "Roklc \n"+ - "sharunkumar \n" + - "SuhasDissa \n" + - "twistios \n" - ) + SettingsEntryGroupText(title = "Developers / Designers") + SettingsDescription(text = stringResource(R.string.in_alphabetical_order)) + DevBoard( context ) + SettingsGroupSpacer( modifier = Modifier.height(Dimensions.bottomSpacer) ) diff --git a/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/SettingsScreen.kt b/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/SettingsScreen.kt index c1bf66662..42684c3dd 100644 --- a/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/SettingsScreen.kt +++ b/composeApp/src/androidMain/kotlin/it/fast4x/rimusic/ui/screens/settings/SettingsScreen.kt @@ -74,6 +74,7 @@ fun SettingsScreen( playerEssential: @Composable () -> Unit = {}, ) { val saveableStateHolder = rememberSaveableStateHolder() + val context = LocalContext.current val (tabIndex, onTabChanged) = rememberSaveable { mutableStateOf(0) @@ -111,7 +112,7 @@ fun SettingsScreen( 2 -> QuickPicsSettings() 3 -> DataSettings() 4 -> OtherSettings() - 5 -> About() + 5 -> About( context ) } } diff --git a/composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/DevBoard.kt b/composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/DevBoard.kt new file mode 100644 index 000000000..16a14d027 --- /dev/null +++ b/composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/DevBoard.kt @@ -0,0 +1,61 @@ +package me.knighthat.ui.screens.settings.about + +import android.content.Context +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.VerticalDivider +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import com.google.gson.Gson +import com.google.gson.JsonArray +import it.fast4x.rimusic.R +import me.knighthat.colorPalette +import java.io.InputStream + +private val GSON = Gson() +private lateinit var DEVS: List + +private fun init( context: Context ) { + // Open contributors.json file + val fileStream: InputStream = + context.resources.openRawResource( R.raw.contributors ) + // Parse content to JSON array + val json: JsonArray = + GSON.fromJson( fileStream.bufferedReader(), JsonArray::class.java ) + + // Convert each object of JSON array to Developer instance + // then sort it based on their username + DEVS = json.map { GSON.fromJson( it, Developer::class.java ) }.sortedBy { it.username } +} + +@Composable +fun DevBoard( context: Context ) { + if( !::DEVS.isInitialized ) + init( context ) + + Box( Modifier.fillMaxWidth().height( 300.dp ) ) { + // For decoration purposes only + val dividerColor = colorPalette().textSecondary.copy( alpha = .5f ) + HorizontalDivider( + modifier = Modifier.padding( start = 35.dp ).width( 50.dp ), + color = dividerColor + ) + VerticalDivider( + modifier = Modifier.padding( start = 35.dp ).size( 80.dp ), + color = dividerColor + ) + // End of decoration + + LazyColumn( Modifier.fillMaxWidth().padding( top = 15.dp ) ) { + items( DEVS ) { it.Draw() } + } + } +} \ No newline at end of file diff --git a/composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/Developer.kt b/composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/Developer.kt new file mode 100644 index 000000000..fdb881a3d --- /dev/null +++ b/composeApp/src/androidMain/kotlin/me/knighthat/ui/screens/settings/about/Developer.kt @@ -0,0 +1,147 @@ +package me.knighthat.ui.screens.settings.about + +import androidx.compose.foundation.Image +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Card +import androidx.compose.material3.CardColors +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import coil.compose.rememberAsyncImagePainter +import com.google.gson.annotations.SerializedName +import it.fast4x.rimusic.R +import it.fast4x.rimusic.ui.styling.favoritesIcon +import me.knighthat.colorPalette +import me.knighthat.typography + +data class Developer( + val id: Int, + @SerializedName( "login" ) val username: String, + @SerializedName( "name" ) val displayName: String?, + @SerializedName( "html_url" )val url: String, + @SerializedName( "avatar_url") val avatar: String, + val contributions: Int? +) { + private val handle: String + get() = url.split( "/" ).last() + + @Composable + fun Draw() { + val uriHandler = LocalUriHandler.current + val avatarPainter = rememberAsyncImagePainter( this.avatar ) + val borderColor = + if( id == 1484476 ) + Color.hsl( 132f, .34f, .56f ) + else + colorPalette().textSecondary + + Card( + modifier = Modifier + .padding(start = 50.dp, end = 20.dp, bottom = 10.dp) + .fillMaxWidth() + .border( 1.dp, borderColor, RoundedCornerShape( 12.dp ) ), + colors = CardColors( + containerColor = Color.Transparent, + contentColor = Color.Transparent, + disabledContainerColor = Color.Transparent, + disabledContentColor = Color.Transparent + ), + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalAlignment = Alignment.CenterVertically + ) { + // Avatar + Image( + painter = avatarPainter, + contentDescription = null, + modifier = Modifier + .size(50.dp) + .clip( RoundedCornerShape( 25.dp ) ) + .border( 1.dp, Color.White, RoundedCornerShape( 25.dp ) ), + contentScale = ContentScale.Fit + ) + + Spacer(modifier = Modifier.width( 16.dp ) ) + + // Dev's info, sits to the right of avatar + Column( Modifier.fillMaxWidth() ) { + Text( + text = displayName ?: username, + style = TextStyle( + color = colorPalette().text, + fontSize = typography().xl.fontSize, + fontWeight = FontWeight.Bold + ), + textAlign = TextAlign.Start + ) + + Row( Modifier.fillMaxWidth() ) { + // Handle + Text( + text = "@$handle", + style = TextStyle( + color = colorPalette().textSecondary, + fontSize = typography().s.fontSize, + fontStyle = FontStyle.Italic, + ), + modifier = Modifier + .wrapContentSize() + .clickable { uriHandler.openUri(url) }, + ) + + if( contributions == null ) + return@Column + + val color = colorPalette().favoritesIcon.copy( alpha = .8f ) + // contributions aligned to the right of handle + Text( + text = contributions.toString(), + style = TextStyle( + color = color, + fontSize = typography().s.fontSize, + ), + textAlign = TextAlign.End, + modifier = Modifier.weight( 1f ) + ) + + Spacer( Modifier.width(5.dp ) ) + + // Pull request icon + Icon( + painter = painterResource( R.drawable.git_pull_request_outline ), + contentDescription = null, + tint = color, + modifier = Modifier.size( typography().s.fontSize.value.dp ) + ) + } + } + } + } + } +} diff --git a/composeApp/src/androidMain/res/drawable-anydpi/git_pull_request_outline.xml b/composeApp/src/androidMain/res/drawable-anydpi/git_pull_request_outline.xml new file mode 100644 index 000000000..863a1daf4 --- /dev/null +++ b/composeApp/src/androidMain/res/drawable-anydpi/git_pull_request_outline.xml @@ -0,0 +1,36 @@ + + + + + + + \ No newline at end of file diff --git a/composeApp/src/androidMain/res/raw/contributors.json b/composeApp/src/androidMain/res/raw/contributors.json new file mode 100644 index 000000000..2a69b2d02 --- /dev/null +++ b/composeApp/src/androidMain/res/raw/contributors.json @@ -0,0 +1,135 @@ +[ + { + "login": "fast4x", + "id": 1484476, + "avatar_url": "https://avatars.githubusercontent.com/u/1484476?v=4", + "html_url": "https://github.com/fast4x", + "contributions": 7142 + }, + { + "login": "25huizengek1", + "id": 50515369, + "avatar_url": "https://avatars.githubusercontent.com/u/50515369?v=4", + "html_url": "https://github.com/25huizengek1", + "contributions": 2 + }, + { + "login": "821938089", + "id": 8674809, + "avatar_url": "https://avatars.githubusercontent.com/u/8674809?v=4", + "html_url": "https://github.com/821938089", + "name": "Horis" + }, + { + "login": "aneesh1122", + "id": 45353488, + "avatar_url": "https://avatars.githubusercontent.com/u/45353488?v=4", + "html_url": "https://github.com/aneesh1122", + "contributions": 159 + }, + { + "login": "bbyeen", + "id": 80675742, + "avatar_url": "https://avatars.githubusercontent.com/u/80675742?v=4", + "html_url": "https://github.com/bbyeen", + "contributions": 2 + }, + { + "login": "Craeckie", + "id": 5006444, + "avatar_url": "https://avatars.githubusercontent.com/u/5006444?v=4", + "html_url": "https://github.com/Craeckie" + }, + { + "login": "DanielSevillano", + "id": 68847306, + "avatar_url": "https://avatars.githubusercontent.com/u/68847306?v=4", + "html_url": "https://github.com/DanielSevillano", + "contributions": 13 + }, + { + "login": "ikanakova", + "id": 38765251, + "avatar_url": "https://avatars.githubusercontent.com/u/38765251?v=4", + "html_url": "https://github.com/ikanakova", + "contributions": 71 + }, + { + "login": "iscle", + "id": 8018823, + "avatar_url": "https://avatars.githubusercontent.com/u/8018823?v=4", + "html_url": "https://github.com/iscle", + "contributions": 1 + }, + { + "login": "jzitnik-dev", + "id": 72742578, + "avatar_url": "https://avatars.githubusercontent.com/u/72742578?v=4", + "html_url": "https://github.com/jzitnik-dev", + "contributions": 33 + }, + { + "login": "knighthat", + "id": 68310158, + "avatar_url": "https://avatars.githubusercontent.com/u/68310158?v=4", + "html_url": "https://github.com/knighthat", + "contributions": 19, + "name": "Knight Hat" + }, + { + "login": "locxter", + "id": 54595101, + "avatar_url": "https://avatars.githubusercontent.com/u/54595101?v=4", + "html_url": "https://github.com/locxter", + "name": "Luca Schultz" + }, + { + "login": "lrusso96", + "id": 26090639, + "avatar_url": "https://avatars.githubusercontent.com/u/26090639?v=4", + "html_url": "https://github.com/lrusso96", + "name": "Luigi Russo" + }, + { + "login": "martkol", + "id": 55714786, + "avatar_url": "https://avatars.githubusercontent.com/u/55714786?v=4", + "html_url": "https://github.com/martkol", + "contributions": 74 + }, + { + "login": "ov1d1u", + "id": 1385202, + "avatar_url": "https://avatars.githubusercontent.com/u/1385202?v=4", + "html_url": "https://github.com/ov1d1u", + "contributions": 1 + }, + { + "login": "roklc", + "id": 142526268, + "avatar_url": "https://avatars.githubusercontent.com/u/142526268?v=4", + "html_url": "https://github.com/roklc", + "contributions": 1 + }, + { + "login": "sharunkumar", + "id": 715417, + "avatar_url": "https://avatars.githubusercontent.com/u/715417?v=4", + "html_url": "https://github.com/sharunkumar", + "contributions": 2 + }, + { + "login": "SuhasDissa", + "id": 64766434, + "avatar_url": "https://avatars.githubusercontent.com/u/64766434?v=4", + "html_url": "https://github.com/SuhasDissa", + "name": "Suhas Dissanayake" + }, + { + "login": "twistios", + "id": 54811436, + "avatar_url": "https://avatars.githubusercontent.com/u/54811436?v=4", + "html_url": "https://github.com/twistios", + "contributions": 22 + } +] From de0ff5337f299a8ccd5b5162acc3824a84a9121a Mon Sep 17 00:00:00 2001 From: knighthat Date: Fri, 4 Oct 2024 12:05:23 -0500 Subject: [PATCH 6/6] update dev's url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6d4f2db2e..2937481e4 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ WARNING, the custom version is not an official release, download only if invited - [fast4x](https://github.com/fast4x) - [ikanakova](https://github.com/ikanakova) - [iscle](https://github.com/iscle) -- [JZITNIK-github](https://github.com/JZITNIK-github) +- [JZITNIK](https://github.com/jzitnik-dev) - [knighthat](https://github.com/knighthat) - [locxter](https://github.com/locxter) - [lrusso96](https://github.com/lrusso96)