forum

osu!userbar

posted
Total Posts
45
show more
Topic Starter
Arnold0
Winshley having 100% accuracy is considerated cheating so it say 1%. Nope ^^

No seriously, you're right saying that I just deleted the last two digit of accuracy. I didn't know that osu!api delete the last 2 (or 4 in case of 100%) useless digit of accuracy. I may have to get the full accuracy string and use number_format

Also what is JSON ?! I just use that for getting data (exemple for score) :
$osu=file_get_contents("http://osu.ppy.sh/api/get_user?k=MYKEY&u=$id&m=$g");
$rankedscore=strstr($osu,'ranked_score');
$pos=strpos($rankedscore,'","');
$rankedscore=substr($rankedscore,15,($pos-15));

Is that wrong ? Is JSON faster / Easyer to use ?

I will fix it monday I think, I won't have a PC before.
Piotrekol

Arnold0 wrote:

Is that wrong ? Is JSON faster / Easyer to use ?
Yes it is wrong. just use Json_decode() function and it should give you a easy to use array.
YunoFanatic
i want to but im wondering or this is curiosity how can i click the picture then an website will come out many of player have that for example deni has a banner ''Mapper Help Team'' and when ever i click i always go to the mapper help team thread pls answer btw i like that mind creating me some?
pixeldesu

YunoFanatic wrote:

i want to but im wondering or this is curiosity how can i click the picture then an website will come out many of player have that for example deni has a banner ''Mapper Help Team'' and when ever i click i always go to the mapper help team thread pls answer btw i like that mind creating me some?
This is easy, just do this:
[url=yoururlhere][img]yourimagelink[/img][/url]
Piotrekol
@up ninja'd ._.
[url=<WEBSITE_ADRESS>][img]<LINK_TO_PICTURE>[/img][/url]

for ex:
[url=http://www.google.pl][img]http://userbar.arnold0.com/userbar4.php?id=304520[/img][/url]
gives me this:

ExBia
I'm adding it lol
YunoFanatic

Piotrekol wrote:

@up ninja'd ._.
[url=<WEBSITE_ADRESS>][img]<LINK_TO_PICTURE>[/img][/url]

for ex:
[url=http://www.google.pl][img]http://userbar.arnold0.com/userbar4.php?id=304520[/img][/url]
gives me this:

Thanks a million!
XPJ38

Arnold0 wrote:

...
Oh wow lol. "A JSON list containing user information" on the GitHub wiki should have given you a clue though :P
JSON is an international standard to easily encode and send data throughout webpages. It's especially used in Javascript/AJAX. Here are some var_dumps to make you understand:

Without json_decode, you get:

string '[{"user_id":"1428609","username":"Arnold0","count300":"1953","count100":"318","count50":"2933","playcount":"11","ranked_score":"1412132","total_score":"2437922","pp_rank":"276967","level":"7.29994","pp_raw":"9.05734","accuracy":"98.76","country":"FR"}]' (length=252)

With json_decode, you get:

array (size=1)
0 =>
array (size=13)
'user_id' => string '1428609' (length=7)
'username' => string 'Arnold0' (length=7)
'count300' => string '1953' (length=4)
'count100' => string '318' (length=3)
'count50' => string '2933' (length=4)
'playcount' => string '11' (length=2)
'ranked_score' => string '1412132' (length=7)
'total_score' => string '2437922' (length=7)
'pp_rank' => string '276967' (length=6)
'level' => string '7.29994' (length=7)
'pp_raw' => string '9.05734' (length=7)
'accuracy' => string '98.76' (length=5)
'country' => string 'FR' (length=2)

Arnold0 wrote:

I didn't know that osu!api delete the last 2 (or 4 in case of 100%) useless digit of accuracy.
iirc PHP or MySQL does that automatically.
Repflez

Arnold0 wrote:

$osu=file_get_contents("http://osu.ppy.sh/api/get_user?k=MYKEY&u=$id&m=$g");
Oh dear... Use cURL at least. file_get_contents is really slow and it should be used if your host doesn't have cURL installed.

Here's the method I use for calling API URLs and uses file_get_contents if cURL isn't installed (Even most free hosting have cURL installed but disable file_get_contents :P).

SPOILER
function get_url($url) {
global $appName, $appURL, $appVersion, $appEmail;
// Do we have cURL installed?
if (function_exists('curl_init')) {
// Yes, do our magic.
$ch = curl_init();
$options = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_USERAGENT => $appName . '/' . $appVersion . ' (' . $appURL . '; ' . $appEmail . ') osu!APIlib (https://github.com/Repflez/osu-API-lib)',
);
curl_setopt_array( $ch, $options );
$content = curl_exec($ch);
curl_close($ch);
} else {
// No, use the slower file_get_contents.
$content = file_get_contents($url);
}
return $content;
}

Arnold0 wrote:

$pos=strpos($rankedscore,'","');
$rankedscore=substr($rankedscore,15,($pos-15));
Wait, what? No offense but what made you think that manipulating directly the string was a good idea? I would explain json_decode but XPJ38 did it first.
Using json_decode($osu, true) should give you a common array with the data you need from the API.
Topic Starter
Arnold0
I didn't even known what iscURL... I'm noob -_-
I'm now using your fonction, then this :
$osudec=json_decode($osu);
$rankedscore=$osudec[0]->ranked_score;
$acc=$osudec[0]->accuracy;
$lvl=$osudec[0]->level;
$rank=$osudec[0]->pp_rank;

Realy easyer ;_;

The "100%" and "0%" accuracy is fixed
Score now use . insted of , .

PS Winshley why you are level 28 mania with 0 score, 0% accuracy ?!?
Winshley

Arnold0 wrote:

PS Winshley why you are level 28 mania with 0 score, 0% accuracy ?!?
Because I did have played osu!mania, but didn't complete the whole song because I kept on failing to get SS. :(

Which means all the level, scores (not Ranked Score) and accuracy are from failed plays.
XPJ38

Arnold0 wrote:

PS Winshley why you are level 28 mania with 0 score, 0% accuracy ?!?
Because of this:

'total_score' => string '144063600' (length=9)
(level is based on total score)
MaxiMilliaN_old
I want Score Ranking version.
Can you make Score Ranking version ?
If you can make Score Ranking version I'll so happy :3
Thank you~ :)
AlexSant
can you use a different font color, in some bars the white in background make it hard to read.
Piotrekol

AlexSant wrote:

can you use a different font color, in some bars the white in background make it hard to read.
or just add 1px black border to letters/numbers ;)

also round level down not up ;)


{"user_id":"304520","username":"Piotrekol",........,"level":"100.864".............}
Avail_old_1
Or just floor it instead of rounding it?
RavenMac
I like it. Not sure if you could do this, but i'm just throwing it out there.
If users could link to an image they want as the BG.
Maybe setup a template for users to work off of, or shrink/stretch images to fit?

Some of the ones available are hard to read, and there's a lack of different colors and styles.
troke
source please?
Howl

-Troke- wrote:

source please?
Do you really need the source code of this? Come on, you can make something similiar in one or two days of coding in php. It's pretty simple from what I can see.
troke
I could not make it, but I can edit it.
I just learned about php, I had previously understood. html
Howl
Here's something similiar for you: https://bitbucket.org/TheHowl/osuuserbarclone/src
Please note: this isn't meant to be used publicily, since at the moment makes an API request every time the image is loaded and that bursts up fast the API requests. Use this only as reference.
As I said, I took even less than 2 days. It isn't a full clone, but still it works with a few edits. Time to do it: 4 hours.
EDIT: Change the value of the api key in the config.php file since it won't work without that changed!
troke

TheHowl wrote:

Here's something similiar for you: https://bitbucket.org/TheHowl/osuuserbarclone/src
Please note: this isn't meant to be used publicily, since at the moment makes an API request every time the image is loaded and that bursts up fast the API requests. Use this only as reference.
As I said, I took even less than 2 days. It isn't a full clone, but still it works with a few edits. Time to do it: 4 hours.
EDIT: Change the value of the api key in the config.php file since it won't work without that changed!
thank you, i am make this for private not public
Topic Starter
Arnold0
Just so you know, I took a look at this and normaly the level becoming too high when >x.50 should be fixed
- Marco -
But now there is the i.ppy.sh image thing that blocks the image from updating :c
Howl

marcostudios wrote:

But now there is the i.ppy.sh image thing that blocks the image from updating :c
Not really. Images are updated on i.ppy.sh every time they're loaded, it's a proxy, and if the server responses a 404 message, then the latest cache is displayed. Or at least, I think that it should be like that.
Repflez

Howl wrote:

marcostudios wrote:

But now there is the i.ppy.sh image thing that blocks the image from updating :c
Not really. Images are updated on i.ppy.sh every time they're loaded, it's a proxy, and if the server responses a 404 message, then the latest cache is displayed. Or at least, I think that it should be like that.
Actually no. i.ppy.sh follows cache headers so if an image has the headers to not cache it, the image should not be cached. I tried it and it works (See my userpage and view the last 2 images at bottom, then refresh and view them again).
Howl

Repflez wrote:

Actually no. i.ppy.sh follows cache headers so if an image has the headers to not cache it, the image should not be cached. I tried it and it works (See my userpage and view the last 2 images at bottom, then refresh and view them again).
Cool.
SPOILER
Now tell me in forum PM what to write in the header to avoid caching >___>
Avail_old_1

Howl wrote:

Repflez wrote:

Actually no. i.ppy.sh follows cache headers so if an image has the headers to not cache it, the image should not be cached. I tried it and it works (See my userpage and view the last 2 images at bottom, then refresh and view them again).
Cool.
SPOILER
Now tell me in forum PM what to write in the header to avoid caching >___>
Why in a PM and not publicly so everyone knows a bit more?
Howl
k

Repflez wrote:

Howl wrote:

Now tell me in forum PM what to write in the header to avoid caching >___>
lol

Just add this before sending the image.
	header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
Repflez

Avail wrote:

-snip-
Why in a PM and not publicly so everyone knows a bit more?
Because is a rather bad idea to bypass the cache unless the image is in "real time". For things like userbars and such, one can use the i.ppy.sh cache to not redo the image at every request except at every N hours. And is not like you could search for [google:1337]php no cache header[/google:1337] or something like that.
Avail_old_1

Repflez wrote:

Avail wrote:

-snip-
Why in a PM and not publicly so everyone knows a bit more?
Because is a rather bad idea to bypass the cache unless the image is in "real time". For things like userbars and such, one can use the i.ppy.sh cache to not redo the image at every request except at every N hours. And is not like you could search for [google:1337]php no cache header[/google:1337] or something like that.
I'm a lazy bum though :^)
And, I cache stuff on my server anyways, that's why this would be useful
Please sign in to reply.

New reply