Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - ReVeNaNt

1
Et la partie AuTO put them before my %Sites=

);
my @AUTO_SITES = grep { $_ ne 'AUTO' } qw(
    musixmatch
    genius
    lyriki
    parolesnet
    lyricsondemand
);
2
parolesnet => [
    'Paroles.net',
    # -------- URL builder --------
    sub {
        my $ID = $_[0];
        my $artist = Songs::Get($ID,'artist') // '';
        my $title  = Songs::Get($ID,'title')  // '';
       
        for ($artist, $title)
        {
            $_ = ::superlc($_);
            $_ = lc $_;
            $_ =~ s/\(.*?\)//g;
            $_ =~ s/\bfeat\.?.*//g;
            $_ =~ s/&/ et /g;
            $_ =~ s/[^a-z0-9]+/-/g;
            $_ =~ s/-{2,}/-/g;
            $_ =~ s/^-|-$//g;
        }
       
        return "https://www.paroles.net/$artist/paroles-$title";
    },
    undef,
    # -------- Lyrics extractor --------
    sub {
        my $html = $_[0];
        my $lyrics = '';
       
        # Extraire le bloc song-text complet
        if ($html =~ m|<div\s+class="song-text">(.*?)</div>|s) {
            warn "DEBUG: Match found!\n";
            my $main = $1;
            warn "DEBUG: Captured " . length($main) . " chars\n";
           
            # Virer le h2 titre
            $main =~ s|<h2.*?</h2>||si;
           
            # Virer les blocs de pub
            $main =~ s|<div[^>]*min-height[^>]*>.*?</div>||gsi;
            $main =~ s|<div[^>]*optidigital[^>]*>.*?</div>||gsi;
           
            # Marquer les doubles <br> (paragraphes) différemment des simples
            $main =~ s|<br\s*/?>[\s\n]*<br\s*/?>|###PARA###|gi;
            $main =~ s|<br\s*/?>|###BR###|gi;
            $main =~ s|</div>|###BR###|gi;
           
            # Virer toutes les balises HTML restantes
            $main =~ s|<[^>]+>||g;
           
            # Nettoyer entités HTML
            $main =~ s/&nbsp;/ /gi;
            $main =~ s/&amp;/&/gi;
            $main =~ s/&lt;/</gi;
            $main =~ s/&gt;/>/gi;
            $main =~ s/&quot;/"/gi;
           
            # Nettoyer espaces
            $main =~ s/^\s+|\s+$//gm;
            $main =~ s/###BR###\s*###BR###/###PARA###/g;
           
            # Remplacer les marqueurs par <br> pour gmusicbrowser
            $main =~ s|###PARA###|<br><br>|g;  # Double saut pour paragraphes
            $main =~ s|###BR###|<br>|g;         # Simple saut pour vers
           
            $lyrics = $main;
            warn "DEBUG: Final lyrics length: " . length($lyrics) . "\n";
           
        } else {
            warn "DEBUG: NO MATCH for song-text div!\n";
            $_[0] = $notfound;
            return 0;
        }
       
        return 0 unless length($lyrics) > 20;
        $_[0] = $lyrics;
        return 1;
    }
],
3
Hello,

Please find a few update for lyrics'plugin find in /usr/share/gmusicbrowser/plugins :

you can put this after "my %Sites="

lyricsondemand => [
    'Lyricsondemand',
    sub {
        my $ID = $_[0];
        my $artist = Songs::Get($ID,'artist') || '';
        my $title  = Songs::Get($ID,'title')  || '';

        # Nettoyer pour l'URL
        $artist =~ s/\s+/_/g;
        $artist =~ s/[^a-zA-Z0-9_]//g;
        $artist = lc $artist;

        $title  =~ s/\s+/_/g;
        $title  =~ s/[^a-zA-Z0-9_]//g;
        $title  =~ s/_+/_/g;
        $title  = lc $title;

        return "https://lyricsondemand.com/$artist/$title";
    },
    undef,
sub {
    my $html = $_[0];
    my $lyrics = '';

    # Extraire tout le bloc mainlyrics
    if ($html =~ m#<div\s+class="mainlyrics">(.*?)</div>\s*</div>\s*</div>#si) {
        my $main = $1;

        # Extraire toutes les lignes de paroles
        my @lines = $main =~ m#<div\s+class="line main-single-line [^"]*"\s+data-line-index="\d+">(.*?)</div>#gis;

        # Nettoyer chaque ligne
        @lines = map {
            my $line = $_;
            $line =~ s/<[^>]+>//g;        # retirer toutes les balises HTML restantes
            $line =~ s/&nbsp;/ /gi;       # espaces HTML
            $line =~ s/&amp;/&/gi;        # ampersand HTML
            $line =~ s/^\s+|\s+$//g;      # trim
            $line;                        # retourner la ligne nettoyée
        } grep { $_ !~ /^\*/ } @lines;    # filtrer les lignes qui commencent par *


        # Joindre toutes les lignes avec saut HTML
        $lyrics = join("<br>", @lines);
    } else {
        $_[0] = "No lyrics found";
        return 0;
    }

    $_[0] = $lyrics;
    return 1;
}],
4
Questions / Re: State of development
January 11, 2026, 12:57:07
Quentin's email no longer seems to exist, and I can't find any trace of him in the various developments.
I also share your opinion about this software—nothing else comes close. I'm not very knowledgeable about programming, so I don't know if it's easy to improve, but at least it works on the latest version of Debian.
5
Maybe you could search your deleted files with "photorec". It will take lot of time but it is really efficient.
6
Hello,

I try to update lyrics.pm

I should replace the escape in title by a "-" to work.

Could you help me ? (I don't know _[0] etc...)

genius => [genius => sub { ::ReplaceFields($_[0], "https://genius.com/%a-%t-lyrics", sub { my $s=::url_escapeall($_[0]); $s=~s/%20/-/g; $s }) }, undef,
sub {
                            if ($_[0] =~ m/<span class="lyrics__content__\w+">/) {
                                $_[0] =~ s/.*<span class="lyrics__content__\w+">(.+?)<\/span>.*/$1/s;
                                $_[0] =~ s/[\r\n]/<br>/g;
return 1;
                            } else {
$_[0] = $notfound;
return 0;
                            }
                        }], 
7
French / Re : browser bloqué !
September 29, 2016, 07:04:26
Bonjour,

Je ne vois pas la pièce jointe aussi l'aide est difficile.

Il faut retrouver le menu Apparence/Disposition.
Configuration, puis Onglet "Apparence de la fenêtre"

Sinon, réinstaller supprimer le dossier .config/gmusicbrowser dans le home et le relancer. (Attention, tous les paramètres seront supprimés.)
8
Bonjour,

Il faut importer les fichiers dans la bibliothèque, tous les sélectionner (Ctrl + A) clique droit sur l'un d'eux, sélectionner "Renommage de Masse" et choisir vos options.
9
Bonjour,

Afin de naviguer dans un morceau avec gmusicbrowser j'utilise le greffon mplayer.

Il suffit de le sélectionner en allant dans Préférence, onglet Audio, puis de sélectionner mplayer.

Bien entendu, il faudra installer toute la partie greffon de mplayer pour que gmusicbrowser puisse l'utiliser.
Le plus simplement :

su
apt-get install mplayer


Cordialement,

PS : Bien que le sujet soit ancien, j'ai connu ce problème et l'ai résolu, et étant donné que l'ami google tombe en recherche direct sur ce forum, je propose cette solution à toutes fins utiles.