Dans ton code schlum, j'ai l'impression qu'en fait il ne prend pas mon rajout de timestamp au md5 du password.. Car comme je l'ai déjà dit, md5(password) et md5(password.timestamp) me donne exactement la même chose.
Dans ton code schlum, j'ai l'impression qu'en fait il ne prend pas mon rajout de timestamp au md5 du password.. Car comme je l'ai déjà dit, md5(password) et md5(password.timestamp) me donne exactement la même chose.
Ben en même temps c'est normal, c'est ce que tu lui demandes :
Donc même la 2e fois tu demandes le MD5 de "password"... au lieu de demander celui de ta variable md5 qui contient md5+timestamp...
C'est bien pour ça que je te dis que tu as tord, même pour un "test rapide" (encore plus pour un test rapide, car dans ce cas on fait pas forcément attention aux erreurs bateau), car du coup ton code n'est pas très lisible à cause des répétitions de blocs et du copier/coller... qui font qu'on laisse très facilement passer ce genre d'erreur Tu aurais utilisé dès le début le code de schlum comme une catégorie (je vois pas ce qui t'a poussé à pas le faire, ça ne fait que rajouter 4 lignes correspondant à @interface, @end, @implementation, @end, quand même pas la mort !) ça t'aurais permis d'avoir un code plus lisible et surtout exempt d'erreursÂ
Hum comment on voit comme j'ai été obligé de m'abaisser à ton niveau pour comprendre tes erreurs de boulet dans ton code... y compris pour le calcul du timestamp et de son md5 que je t'ai donné par iChat... moi je dis no comment :)beta:
[PJ] (Et ton canard en plastique que tu aimes tant au point de trouver des excuses bidon pour le mettre dans tes parodies audio... tu peux le garder :P) :(renaud): [/PJ]
Moi ce que je ne comprends pas c'est pourquoi tu utilises une NSTask pour obtenir le nombre de secondes depuis le 1er Janvier 1970 :P C'est vraiment se prendre la tête pour rien :crackboom:-
"man gettimeofday" (Cette fonction va te donner une structure contenant les secondes et même les microsecondes passées depuis le 1er Janvier 1970)
Faut vraiment que tu te mettes au C
En gros, ce que tu chopes en une quinzaine de lignes en créant un shell et en lançant un exécuatble externe peut s'obtenir directement en 3 lignes (4 en comptant l'include) :
En tout cas ça marche J'ai pris [[NSDate date] timeIntervalSince1970]; J'ai enfin passé le handshake. Cependant je suis confronté à un autre problème. Jusqu'à maintenant j'ai du utiliser le méthode GET pour le hanshake (je vous rappel le lien : http://www.audioscrobbler.net/development/protocol/ ). Maintenant, pour envoyer les informations du current track de iTunes, je doit utiliser le méthode POST vers l'URL suivante : http://62.216.251.205:80/protocol_1.2
Alors ma grande question : Comment je dois procéder exactement ?
Voici les infos à envoyer :
Submission Stage
The submission takes place as a HTTP/1.1 POST transaction with the server, using the URL provided during the handshake phase of the protocol. The submission body may contain the details for up to 50 tracks which are being submitted. Under normal circumstances only a single track will be submitted, however, clients should cache submissions in case of failure.
The request takes the form of a group of form encoded key-value pairs which are submitted to the server as the body of the HTTP POST request, using the URL provided in the handshake. All specified parameters must be present; they should be left empty if not known. The key-value pairs are:
s=<sessionID> The Session ID string as returned by the handshake. Required. a[0]=<artist> The artist name. Required. t[0]=<track> The track title. Required. i[0]=<time> The time the track started playing, in UNIX timestamp format (integer number of seconds since 00:00:00, January 1st 1970 UTC). This must be in the UTC time zone, and is required. o[0]=<source> The source of the track. Required, must be one of the following codes: PChosen by the userRNon-personalised broadcast (e.g. Shoutcast, BBC Radio 1)EPersonalised recommendation except Last.fm (e.g. Pandora, Launchcast)LLast.fm (any mode). In this case, the 5-digit Last.fm recommendation key must be appended to this source ID to prove the validity of the submission (for example, "o[0]=L1b48a").USource unknown Please note, for the time being, sources other than P and L are not supported.
r[0]=<rating> A single character denoting the rating of the track. Empty if not applicable. LLove (on any mode if the user has manually loved the track). This implies a listen.BBan (only if source=L). This implies a skip, and the client should skip to the next track when a ban happens.SSkip (only if source=L) Note: Currently, a web-service must also be called to set love/ban status. We anticipate that this will be phased out soon, and the submission service will handle the whole process.
l[0]=<secs> The length of the track in seconds. Required when the source is P, optional otherwise. b[0]=<album> The album title, or empty if not known. n[0]=<tracknumber> The position of the track on the album, or empty if not known. m[0]=<mb-trackid> The MusicBrainz Track ID, or empty if not known. Key-value pairs are separated by an '&' character, in the usual manner for form submissions in HTTP. The values given to the keys must be converted to UTF-8 first, and must be URL encoded. Multiple submissions may be specified by repeating the a[], t[], b[], m[], l[], and i[] key-value pairs with increasing indices.
évidemment les infos à rentrer je les connais, là n'est pas le problème. Le gros problème c'est : comment procéder. Comment utiliser la méthode POST ! Merci d'avance !
Oui mais comme Môssieur a peur du C (faut pas chercher à comprendre, il aime pas c'est tout :P) la version consistant à passer par l'objet Cocoa NSDate est plus compréhensible pour lui je pense ;D (faut bien se mettre à son niveau )
Oui mais comme Môssieur a peur du C (faut pas chercher à comprendre, il aime pas c'est tout :P) la version consistant à passer par l'objet Cocoa NSDate est plus compréhensible pour lui je pense ;D (faut bien se mettre à son niveau )
Réponses
J'obtiens la même chose avec ma catégorie !
->
(allez, t'as plus qu'à aller voter pour toi-même )
Ben je sais pas moi, aboule le code et les tests que t'as fait, on verra bien :P
Salopard j'ai déjà voté totosh
Dans ton code schlum, j'ai l'impression qu'en fait il ne prend pas mon rajout de timestamp au md5 du password..
Car comme je l'ai déjà dit, md5(password) et md5(password.timestamp) me donne exactement la même chose.
Voici donc le code de test :
C'est bien pour ça que je te dis que tu as tord, même pour un "test rapide" (encore plus pour un test rapide, car dans ce cas on fait pas forcément attention aux erreurs bateau), car du coup ton code n'est pas très lisible à cause des répétitions de blocs et du copier/coller... qui font qu'on laisse très facilement passer ce genre d'erreur
Tu aurais utilisé dès le début le code de schlum comme une catégorie (je vois pas ce qui t'a poussé à pas le faire, ça ne fait que rajouter 4 lignes correspondant à @interface, @end, @implementation, @end, quand même pas la mort !) ça t'aurais permis d'avoir un code plus lisible et surtout exempt d'erreursÂ
Merci Ali ;D ;D ;D ;D
Le premier qui se moque je le mord ;D ;D
mmpppfffffrrr....
Va jouer va jouer ::)
[PJ]
(Et ton canard en plastique que tu aimes tant au point de trouver des excuses bidon pour le mettre dans tes parodies audio... tu peux le garder :P) :(renaud):
[/PJ]
C'est vraiment se prendre la tête pour rien :crackboom:-
"man gettimeofday"
(Cette fonction va te donner une structure contenant les secondes et même les microsecondes passées depuis le 1er Janvier 1970)
Faut vraiment que tu te mettes au C
En gros, ce que tu chopes en une quinzaine de lignes en créant un shell et en lançant un exécuatble externe peut s'obtenir directement en 3 lignes (4 en comptant l'include) :
J'ai enfin passé le handshake. Cependant je suis confronté à un autre problème. Jusqu'à maintenant j'ai du utiliser le méthode GET pour le hanshake (je vous rappel le lien : http://www.audioscrobbler.net/development/protocol/ ).
Maintenant, pour envoyer les informations du current track de iTunes, je doit utiliser le méthode POST vers l'URL suivante : http://62.216.251.205:80/protocol_1.2
Alors ma grande question : Comment je dois procéder exactement ?
Voici les infos à envoyer :
évidemment les infos à rentrer je les connais, là n'est pas le problème. Le gros problème c'est : comment procéder. Comment utiliser la méthode POST !
Merci d'avance !
Moins optimisé que ce que j'ai mis au dessus :P NSDate est un wrapper au-dessus de gettimeofday je pense...
De suite la grosse tête :P spèce de canard va