forum

[projet]Générateur signature osu!

posted
Total Posts
135
show more
Drafura

JudgeTheDude wrote:

Sinon t'appelles Poirot, c'est une bonne police aussi.
Topic Starter
idk
C'etait bien tahoma :D Big Kisssssuu Sushi ... Reste plus qu'a securisé un peu le script ( im noob to this ) et foutre un design ( pourquoi pas )
Topic Starter
idk
J'ai trouvé un hebergeur :) le script fonctionne y a toujours quelques bricoles à arranger-> http://amoniack.olympe.in/
Yuzeyun
Essaie de faire comme ça :
Les traits sont les points d'ancrage du texte (Pour les lignes de nick, pp, acc et play c'est le soulignage)

Le nom : 18pt
Les détails : 12pt
Le rang : 45pt
Détail : L'espacement entre les caractères dans les ... détails est de +40 pour les deux premières lignes et de +42 pour la dernière.

Est-ce que tu peux faire cet espacement ? Sinon bah on fera sans.

Ca reste tout de même correct pour un premier essai, j'essaierai de piquer les icons CTB/Mania/Standard/Taiko pour le truc vu que ça a l'air d'être le panel de 1366x768
Kurai


:(
Topic Starter
idk
Le nom: 16px
Le Rank: 37px
Les details 10px


Si j'augmente la taille ça me fait un truc bizarre donc c'est une bonne configuration que j'ai là le seul soucis c'est qu'en local le tahoma etait un peu plus gras que sur le site ... j'ecris donc 2 fois et j'espace le 2eme de 1px.

Apres je viens de voir que j'ai une erreur ( comme Kurai le montre ) lorsque l'avatar est en .jpg je vais essayer de corriger ça le plus vite possible

Edit: Obligé de tout Refaire --
Edit2: Fini tout devrais marcher ... j'espere ...
Demmon
Topic Starter
idk
Error c'est du fait que tu n'as pas mis l'id mais ton username
Drafura
Pourquoi pas remplacer "Error" par ce que tu viens de marquer ici ?
Topic Starter
idk
Pas Bête

Drafura wrote:

Pourquoi pas remplacer "Error" par ce que tu viens de marquer ici ?
Nomeji
C'est quoi la différence avec :

?
Juuryoushin

nomeji wrote:

C'est quoi la différence avec :

?
J'me pose la même question, surtout que même si c'est plus chiant à prendre en screen correctement, c'est plus beau sur les panel ig.
XPJ38

nomeji wrote:

C'est quoi la différence avec :

?
C'est encore les anciens rangs et acc sur celui-là, c'est pas mis à jour quoi.
Drafura
pp is so important
Topic Starter
idk
j'voulais rendre cela plus beau et reconnaissable
Nomeji
Il y a un problème :

Je sais pas comment te faire un log détailler mais demande moi si je peux aider.
XPJ38
Ça marche bien, il faut juste ne pas mettre ton nom "nomeji" dans le champ mais ton ID "1825538".



Amoniack, tu devrais vraiment mettre un petit texte explicatif pour éviter que les gens se trompent, et mettre une condition qui vérifie si l'input rentré est un nombre et non pas un texte.
Sushi
Tu pourrais également faire un test, je suis sur qu'il y a moyen de passer par l'id de la page également.
Nomeji

XPJ38 wrote:

Ça marche bien, il faut juste ne pas mettre ton nom "nomeji" dans le champ mais ton ID "1825538".
Merci. ;)
Topic Starter
idk
je vais essayer de le faire avec le nom si j'ai le temps ^^
Topic Starter
idk
Mis à jour: Recherche avec le nom disponible ;)

Je galère pour actualiser toutes les heures ... je travaille encore dessus.
Mizushir0
Le site est down ?
Topic Starter
idk
oué y a plus l'affichage des PP sur le site je peut pas continuer ^^"
Topic Starter
idk
Je remet l'accés au site et aux signatures ... sur les profils, les pp ne sont plus plus affiché donc j'ai enlevé les pp de la signature ^^"
Kurai
Les pp sont toujours affichés ici, si tu peux te démerder pour les récup.
https://osu.ppy.sh/p/pp?c=FR
Topic Starter
idk
y a 10 000 lignes faut que je fasse toute les pages pour trouver les pp d'une personne ... non merci :o
krius_old
Tu pourrais a la rigueur trouver la page dans le classement général directement d'après le classement du joueur dans un mode, enfin ça reste plus chiant que de récupérer directement depuis le profil :/
Topic Starter
idk
J'essaierai ._. peut pas acceder à mon ftp à l'internat !
Topic Starter
idk
Y a rien que je puisse faire au niveau des PPs, il n'y a pas d'url qui pourrais m'aider à trouver un score ou une rank dans le leader, https://osu.ppy.sh/p/pp?s=3&o=1&c=FR&f=Amoniack#jumpto celui ci ne marche pas
Kurai

A chaque fois que je charge une page avec une de tes sign dedans ...
Topic Starter
idk
:o c'est quoi ce bordel ... Y a des gens qui ont Avast et y a rien qui est detecté chez eux ...
Topic Starter
idk
j'ai down le site je vais en refaire un autre dimanche et changer mon code
Chihaya
Juste pour préciser que j'ai la même chose, et sur le site la page me marque Erreur 103... :3 j'ai cru que c'était moi je suis un peu rassuré de voir que je suis pas le seul ^^ (j'ai aussi avast :3).
XPJ38
J'imagine que c'est peut-être parce que tu génères une image à chaque fois que tu demandes une image et que, vu le temps de traitement que ça prend, avast te catalogue comme un bot malveillant ? Ce n'est qu'une supposition.

De mon côté, j'avais un peu de temps libre et je voulais découvrir GD, donc je me suis amusé à essayer de reproduire ton code et ton image via l'appel d'un script image.php :P
Ça donne ça :


(données bidons, je travaille toujours sur la récup des infos. J'utilisais un parseur HTML trouvé sur le net mais il est incapable de récupérer le contenu d'une balise <script> donc je vais devoir revoir le système de récup des données >.<)

Ça stocke les images générées sur le serveur et ne les rafraîchit que si l'image date au moins de 24 heures, tel que peppy l'avait suggéré. Ça réduit à fond la charge.

Si tu es intéressé par le code, envoie-moi un message privé.
Topic Starter
idk
recupere les données avec ce lien https://osu.ppy.sh/pages/include/profil ... 273531&m=0 sinon j'avais un peu travaillé sur un systeme de Base de donnée et d'actualisation toutes les 1h mais j'ai pensé aussi à tout modifier, j'apprend le Javascript pour pouvoir faire des signatures 100% personnalisable( fond, emplacement de chaque ecriture etc )
XPJ38
J'utilisais ce lien au début mais si l'utilisateur fournit son nom et pas son ID, il m'est impossible d'utiliser cette page. À moins que tu aies trouvé une solution pour contourner le problème ou que tu stockes les correspondances en BDD.
Topic Starter
idk
tu verifies si il utilise des chiffres ( pour l'id ) si c'est pas le cas, grace au nom tu recherches sur ta page de profil normal ça -> var userId = ... y aura ton id et ensuite tu continus le script avec l'id trouvé
XPJ38
Ouais je fais exactement comme ça, c'est pour ça que je voulais passer par la récup du contenu de la balise script qui contient userId. Bon, donc il n'y a pas moyen de faire autrement, merci :D
WingSilent

Kurai wrote:


A chaque fois que je charge une page avec une de tes sign dedans ...
Pourquoi mon pseudo? :'(

F.....
XPJ38
Du nouveau ? Je suis curieux de voir ce que ces signatures donnent avec Javascript :)
Arnold0
Pourquoi vous voulez mètre du javascript?
Je pense même pas qu'il y en ai besoin pour changer l'image, un paramètre $_GET['image'] devrais suffire non ?
XPJ38
Certes, mais il voulait faire ça :

Amoniack wrote:

j'apprend le Javascript pour pouvoir faire des signatures 100% personnalisable( fond, emplacement de chaque ecriture etc )
(Arnold mets autre chose que du Comic Sans MS, ça saigne les yeux x_x)
Arnold0
Mais qu'avez vous contre le comic sans ms ?
En fait je sais pas ce qu'il y a comme belle police et j'aime bien ;_;

En fait vous avez fait de la mise en cache sur vos signatures?
Si oui, vous avez fait comment ?

Perso sur mon image j'ai commencé a le faire, avec une BDD mysql.
En fait j'enregistre les données utilisées pour faire l'image et l'heure d'enregistrement (en timestamp) et je test ensuite le nombre de secondes de différence, si y'en a plus de 900 (15 min) pour le statut BT-R je le mets a jour et si y'a plus de 10800 (3h) pour les stats LGEL je met a jour, et si y'a moins je prend les données dans la BDD pour régénérer l'image. C'est ce qui m'a paru le plus simple par rapport a mon niveau en php ;_;
C'est pas encore mis sur ma signature en ligne car c'est pas encore fait pour la partie osu! et j'ai pas mis la BDD sur mon PC serveur ;_;

Sinon pour récupérer les données, j'utilise que des strstr, stristr, strpos, substr,... après avoir fait des file_get_contents... C'est peut être pas le mieux, j'en sais rien, mais quand j'avais cherché j'ai trouvé ça et c'est assez simple a utiliser donc bon ;_;
XPJ38
À lire avec légèreté : http://comicsanscriminal.com/ :P

Moi personnellement, je rafraîchis mes images toutes les 24h "à la demande". Pour tester si l'image doit être rafraîchie ou non, je fais un test comme suit sans passer par une BDD :
$timeIntervalToRefresh = 86400; // 86400 secs = 24 h
// If image already exists and has not been refreshed for $timeIntervalToRefresh: no need to refresh, just load the existing one and sent it to the client
if (file_exists(...) && ((time() - filemtime(...)) <= $timeIntervalToRefresh)) {
// Pas la peine de refresh
}
else {
// Refresh à faire
}
filemtime() donne la date (ou plutôt timestamp) de dernière modification du fichier, time() retourne le timestamp actuel. Y a plus qu'à comparer.

Arnold0 wrote:

Sinon pour récupérer les données, j'utilise que des strstr, stristr, strpos, substr,... après avoir fait des file_get_contents... C'est peut être pas le mieux, j'en sais rien, mais quand j'avais cherché j'ai trouvé ça et c'est assez simple a utiliser donc bon ;_;
J'utilisais ceci avant pour me simplifier la vie, puis finalement, après quelques déboires, je me suis mis à utiliser comme toi des file_get_contents / strstr / etc. Flemme de chercher dans le DOM à la main ce qui m'intéresse lol
Kurai

8-)
Cyclohexane
mouahahaha j'ai pensé à la même chose
Arnold0
Ah ok je vois comment ta fais pour l'image, moi je la sauvegarde même pas.
Mais bon comme j'ai fait me permet de refresh certaines infos pas en même temps que d'autres, mais c'est plus dur a mètre en place je présume (bdd mysql ;_;)

Bon j'ai pas fait un truc dur, j'ai fait quelque chose comme ça :

mysql_connect($bddhost,$bdduser,$bddpassword); //Connexion a la bdd
mysql_select_db($bddname); //choix de la bdd

$reqosu=mysql_query("select * from osu"); //requete SQL pour avoir les données
$resosu=mysql_fetch_array($reqosu); //Pour utiliser les données dans ma page de la forme $resosu['nomduchampsdelabdd']
if($resosu!=NULL){ //Si y'a des données dans la bdd
    $h1=$resosu['heure']; //Recup le timestamp qui est dans la BDD
    $diff=$heure_actuelle-$h1; //Calcul le nombre de secondes de différences
}
$osufail=0;
if($resosu==null||$diff>=10800){ //Si y'a pas de données ou que la différence est de plus de 10800 secondes (3h)
    $osu=file_get_contents("http://osu.ppy.sh/pages/include/profile-general.php?u=1428609&m=0"); //recup du fichier
    if($osu!=false){ //Si le fichier a bien été recup
        //code pour récupérer les données que j'ai enlevé là ^^
        if($resosu==null) mysql_query("insert into osu values ('','$rankedscore','$acc','$lvl','$rank','$heure_actuelle');"); //Si y'a pas encore dans la BDD on ajoute
        else mysql_query("update osu set score='$rankedscore',acc='$acc',lvl='$lvl',rank='$rank',heure='$heure_actuelle' where id=1;"); //Sinon on met a jour    
    }
    else $osufail=1; //Si le fichier a pas été recup on met $osufail a 1 pour avoir une erreur sur l'image
}
else{ //Si y'a les données et moins de 3h
    $rankedscore=$resosu['score']; //
    $acc=$resosu['acc']; //
    $lvl=$resosu['lvl']; //
    $rank=$resosu['rank']; // On prend les valeurs dans la BDD et on les met dans les variables utilisés pour générer l'image
}
(La même chose avec des requêtes différentes pour les deux autres pages que j'ai mis dans mon image)
XPJ38

Arnold0 wrote:

Ah ok je vois comment ta fais pour l'image, moi je la sauvegarde même pas.
Mais bon comme j'ai fait me permet de refresh certaines infos pas en même temps que d'autres, mais c'est plus dur a mètre en place je présume (bdd mysql ;_;)
Pas spécialement. Tu as juste à sauvegarder l'image sur le disque à la fin du script au moins une fois et, quand l'image est appelée de nouveau, tu fais tes tests (900 secondes, 10800 secondes, etc.) Si tous tes tests retournent false, tu n'as qu'à charger l'image déjà présente sur le disque puis l'envoyer au client. Sinon, tu recrées l'image et tu écrases l'image précédente.
Pour faire tout ce que j'ai dit avec GD, tu as juste besoin de imagepng et imageCreateFromPng, rien d'autre. Rien de bien compliqué, vraiment :P

Mais surtout, l'avantage de cette solution est qu'elle permettra sûrement d'éviter ce qu'Amoniack a rencontré, à savoir Avast qui détecte ton site comme étant malveillant, puisque d'une part les temps de chargement sont nettement réduits et que d'autre part ça évite de faire des file_get_contents sur osu!, LGEN et BT-Radio inutilement à chaque fois que l'image est appelée.
Topic Starter
idk
Rien de nouveau XD j'ai un BAC là

Sinon pour les actualisations il y a plusieurs methodes:

1°) Le cache : Seulement pour les images concervés sur le DD, rien de bien dynamique c'etait mon premier code sur la signature, je prennais les données du site pour les mettre sur une image que j'ai moi même choisit avant et ça me l'enregistre sur mon FTP.

2°) javascript : on prend le même script qu'avant et on fout un code javascript qui actualise toutes les x secondes

3°) Base de données : on recupere les infos du site si l'image n'a jamais été généré et on envoie tout ça dans la BDD avec la date l'heure etc, ensuite a chaque fois que l'image est généré il verifie deja si elle existe dans la BDD, si oui regarder la date, la comparer avec celle de maintenant (du serveur) si y a x secondes ou heures de differences, reprendre les données du site etc ... sinon laisser comme tel et afficher les données sur l'image.
Arnold0
Bon bah j'ai réutiliser mon code de ma grosse signature blanche toute moche pour faire des userbars osu! en en changeant un peu le code, n'importe qui peut en faire une. Par contre je pense que y'a un problèmes pour ceux qui ont 0 PP car ça donne ça dans la BDD :x

C'est sur un hébergeur gratuit de 10Mo max de capacité, donc l'utilisation de BDD est obligée sinon au bout de peu d'user boum plus de place xD
(J'allais pas mètre ça chez moi, si je compte proposer a pas mal de gens de le faire x))

EDIT : Bon bah
if($rank==null) $rank="#0";
Problem solved XD

EDIT 2 : C'est qui le malin qui a ajouté le compte a peppy ? XD

(L'id 2 c'est peppy sur osu!)
XPJ38

Arnold0 wrote:

Par contre je pense que y'a un problèmes pour ceux qui ont 0 PP car ça donne ça dans la BDD :x
Ah ces ID-là c'est moi, c'était pour voir si tu testais tous les cas XD
Please sign in to reply.

New reply