flashgun 0 Опубликовано: 28 ноября 2016 Поделиться Опубликовано: 28 ноября 2016 Вот интересно, а многие ли из вас обращают внимание на геймеркарды форумчан? Я вот да, обращаю. Подавляющее большинство пользуется mygamerprofile.net, чуть поменьше gamercards.exophase.com, ещё меньше cards.ps3t.ru и trueachievements.com. Исчезающе малое количество -- xboxlc.com и xboxgamertag.com. Все шесть этих сервисов объединяет одно качество -- все эти геймеркарды -- убогое неинформативное унылое говно ни о чём. Что можно из них узнать? Геймертаг, геймерскор, аватарку и несколько последних игр. Реже -- общее число игр и средний прогресс. Брать геймертаг с картинки неудобно: его предлагается перенабирать руками что ли? Некоторые фиг наберёшь вот так запросто, например, носок в сметане, или конские наборы букв и цифр. Единственное, что я вижу -- общий геймерскор, по которому могу примерно оценить, насколько хардкорен этот игрок, или может это нуб, хотя и тут можно ошибиться. Но ближе к делу. Как многие знают, несколько последних месяцев я был озабочен отказом от использования иксбоксапи-точка-ком для получения своей статистики. Причина -- потребность в большем, нежели даёт халявный доступ, количестве запросов к xboxlive. И вот, наконец, я могу смело заявить, что мне не только удалось реализовать весь необходимый мне функционал прямым обращением к restful api xboxlive, но и получить то, чего раньше у меня не было. Итак:Теперь есть инфа не только по играм Xbox One, но и по всем играм Xbox 360, с ачивками. Об этом просили давно, и я отнекивался, но теперь оно готово! Благодаря коллеге @MrConst, который любезно поделился ресурсами, опросом игростатистики занимается отдельная, выделенная машина, которая делает это каждые пол-часа и обновляет базу PostgreSQL удалённо.Таким образом, у меня появилась актуальная база всех 700 с небольшим игроков со статистикой игр, с историей, сессиями, ачивками и прогрессом, и грех было не переписать свой геймеркард, которым пользуюсь я и некоторые участники нашего форума. Чем я и занимался в свободное время несколько последних недель.Готово! Па-бам: http://xbox.z2e.ru/gc/ Больше никаких ключей, регистрации, писем и лички. Моё участие нулевое. Просто укажите свой геймертаг и всё, процесс построения запустится, и в течение нескольких минут всё будет готово. Если решите выйти из программы, просто уберите ссылку на картинку из подписи. Чуть позже напишу робота, который будет отстреливать невостребованные картинки. Вторая версия "умнее" первой. Когда ваш браузер запрашивает картинку с моего сервера, сервер смотрит, с какой страницы пришёл запрос, получает список игр из базы, выбирает картинку со статистикой игры из базы, аватарку с актуальным геймскором, отправляет их браузеру и одновременно отправляет notify-запрос в базу SQL для соседней машины от MrConst. Машина, получив адрес страницы, с которой пришло обращение, смотрит, насколько давно она её читала и, если это было давно, то перечитывает её ещё раз на предмет какие игры упоминаются в текстах комментариев пользователей (div itemprop=commentText), и обновляет базу. Таким образом, уже через несколько секунд, если обновить страницу, геймеркард будет соответствовать тематике обсуждения. Отдельные postgresql-листенеры следят за изменением цвета в профиле, аватарки и геймерскора. Таким образом, минимум обращений, минимум оверхеда, максимум эффективности. Плюс, благодаря PostreSQL, эта версия отдаёт картинку быстрее предыдущей. Ну а самое главное -- я пока не вижу ограничений на количество наших форумчан, которые теперь могут воспользоваться этой штукой. То есть технологически ничего не должно сдерживать лично каждого от того, чтобы добавить мою штуку к себе в подпись. И ещё прикольная вещь придумалась буквально на днях, которую я вообще ещё неделю назад думал, что реализовать невозможно, а именно -- по клику на геймеркард переход не просто на страницу моей статистики, а на страницу статистики именно той игры, которая в данный момент показана на геймеркарде. Невероятно, но приложив немного печенек, это получилось! Теперь важное лично для меня. Вся эта возня с парсерами, дипой, статистикой и прочим, конечно, приносит мне море удовольствия, но. Просто поверьте, что всякий раз, когда я читаю форум и натыкаюсь на письмо @ddog, @Yarik16, @MrConst, @Zlobka, @GziN, @umountdevbrain, где вижу плод своих, в том числе ночных бдений, вы не представляете, какие вдохновенные брызги огня, какой чувственный фонтан искр взрывается у меня в душе, и в эти секунды я верю, что не зря прожил эту жизнь, что есть на свете люди, которые пользуются моими трудами, и я получаю свою дозу эндорфинов в кровь, что, конечно же, почти приход, и хочется ещё. Спасибо вам, ребята! Поэтому, если вы считаете, что я делаю хорошее дело, если дипа сэкономила вам денег, если вы просто хотите сказать мне "спасибо", просто поставьте себе мой геймеркард, мне будет приятно всякий раз, когда я буду натыкаться на ваше сообщение в форуме. Даже если вы считаете, что так верстают $%даки, что от шрифтов кровь течёт из глаз, размер неудачный и аватарки мелкие или крупные, всё равно этот геймеркард будет лучше и информативнее, чем то, что у вас стоит сейчас :) У меня ещё куча идей: надо вернуть ежемесячные отчёты, надо разобраться со сложными ачивками, надо вернуть графики активности игр и рекомендации. Мотивация пригодится! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
1deru 517 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Спасибо, очень круто! Не думал распространять его среди западной аудитории? :) П.с. У меня на телефоне не активно окно с текстом подписи, чтобы выделить и скопировать. Хотя, мб, это мой телефон тупит. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
everdyin 0 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 классная работа! Поставил себе тоже. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArzKiM 68 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Отлично :)так держать ^_^ Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
flashgun 0 Опубликовано: 29 ноября 2016 Автор Поделиться Опубликовано: 29 ноября 2016 Спасибо, очень круто! Не думал распространять его среди западной аудитории? :) П.с. У меня на телефоне не активно окно с текстом подписи, чтобы выделить и скопировать. Хотя, мб, это мой телефон тупит.Думал, но отказался. Дело в том, что геймеркард -- это сервис поверх статистики. Вот сейчас лично для меня она ценна тем, что представляет собой совершенно конкретный социокультурный срез близкой мне формации, и если сейчас привнести в статистику европейские бейсболы, кёрлинги, гольфы и прочие далёкие от духовных скреп гей-парады, то православность данных уменьшится. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
everdyin 0 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Думал, но отказался. Дело в том, что геймеркард -- это сервис поверх статистики. Вот сейчас лично для меня она ценна тем, что представляет собой совершенно конкретный социокультурный срез близкой мне формации, и если сейчас привнести в статистику европейские бейсболы, кёрлинги, гольфы и прочие далёкие от духовных скреп гей-парады, то православность данных уменьшится.а вот это - в мемориз :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
flashgun 0 Опубликовано: 29 ноября 2016 Автор Поделиться Опубликовано: 29 ноября 2016 Ночью меня замучила совесть. У нас, зелёных, и статистика, и дипа, и теперь вот геймеркарды. Решил, что луюзеров сонеприставки тоже надо осчастливить. Сегодня утром потратил часик на перл, и вот, готово: http://xbox.z2e.ru/gc/sony.jpg Это не шутка! Данные читаются в 6 утра каждый день с википедии (https://en.wikipedia.org/wiki/PlayStation_4#Sales) и рисуется картинка. Можно вставлять в подпись :) [spoiler=Вот код на перле] #!/usr/bin/perl use LWP::Simple; use Mojo::DOM; use Image::Magick; use Data::Dumper; use Encode; my $image=Image::Magick->new(); $image->Read("ps4pic.png"); $image->Resize( geometry => "x96"); $image->Extent( geometry => '500x120', background => "#0000ff"); $font = "Segoe-UI"; my %months = ( "January"=>"Jan", "February"=>"Feb", "March"=>"Mar", "April"=>"Apr", "May"=>"May", "June"=>"Jun", "July"=>"Jul", "August"=>"Aug", "September"=>"Sep", "October"=>"Oct", "November"=>"Nov", "December"=>"Dec" ); # reading table my $url = "https://en.wikipedia.org/wiki/PlayStation_4"; my $tabhead = "Worldwide Hardware Shipments"; my $dom = Mojo::DOM->new(get($url)); my @tabs = $dom->find('table')->each(); my (@col1, @col2, $len2); foreach $table (@tabs) { $head = $table->find('th[colspan="2"]')->to_array->[0]; next if(!defined($head)); next if($head->content !~ /$tabhead/); my @trs = $table->find('tr')->each; foreach $tr (@trs) { @row = $tr->find('td')->each; next if(@row != 2); my $quot = encode('utf-8', $row[0]->content); my $life = encode('utf-8', $row[1]->content); $quot =~ s/<\/?small>//g; $life =~ s/<\/?small>//g; grep { $quot =~ s/$_/$months{$_}/; } keys(%months); grep { $life =~ s/$_/$months{$_}/; } keys(%months); $len1 = ($image->QueryFontMetrics(font=>$font, pointsize=>9, text=>$quot))[4]; $len2 = ($image->QueryFontMetrics(font=>$font, pointsize=>9, text=>$life))[4]; push @col1, $quot; push @col2, $life; push @len2, $len2; } } $y = 114; while($quot = pop(@col1)) { $life = pop(@col2); $len2 = pop(@len2); $image->Annotate(font=>$font, pointsize=>9, fill=>'white', text=>$quot, x => 110, y => $y); $image->Annotate(font=>$font, pointsize=>9, fill=>'white', text=>$life, x => 390-$len2, y => $y); $y -= 10; last if($y < 27); } $image->Annotate(font=>$font, pointsize=>14, fill=>'white', text=>"#4theplayers", x => 414, y => 112); $image->Annotate(font=>$font, pointsize=>14, fill=>'white', text=>"#продажи", x => 14, y => 112); $font = "Segoe-WP-Bold"; $image->Annotate(font=>$font, pointsize=>14, fill=>'white', text=>$tabhead, x=>100, y=>18); my $logo = Image::Magick->new(); $logo->Read("ps4logo.png"); $logo->Resize( geometry => "x96"); $image->Composite(image => $logo, x=>404, y=>0); undef $logo; $image->Write("/var/www/xbox/gc/sony.jpg"); undef $image; Занесите кто-нибудь синим в их темы, а то я там плохо ориентируюсь. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
shturm 68 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 (изменено) Круто! Изменено 29 ноября 2016 пользователем shturm Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
imhut 1 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Продолжай в том же духе! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
1deru 517 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Ночью меня замучила совесть. У нас, зелёных, и статистика, и дипа, и теперь вот геймеркарды. Решил, что луюзеров сонеприставки тоже надо осчастливить. Сегодня утром потратил часик на перл, и вот, готово: http://xbox.z2e.ru/gc/sony.jpg Это не шутка! Данные читаются в 6 утра каждый день с википедии (https://en.wikipedia.org/wiki/PlayStation_4#Sales) и рисуется картинка. Можно вставлять в подпись :) [spoiler=Вот код на перле] #!/usr/bin/perl use LWP::Simple; use Mojo::DOM; use Image::Magick; use Data::Dumper; use Encode; my $image=Image::Magick->new(); $image->Read("ps4pic.png"); $image->Resize( geometry => "x96"); $image->Extent( geometry => '500x120', background => "#0000ff"); $font = "Segoe-UI"; my %months = ( "January"=>"Jan", "February"=>"Feb", "March"=>"Mar", "April"=>"Apr", "May"=>"May", "June"=>"Jun", "July"=>"Jul", "August"=>"Aug", "September"=>"Sep", "October"=>"Oct", "November"=>"Nov", "December"=>"Dec" ); # reading table my $url = "https://en.wikipedia.org/wiki/PlayStation_4"; my $tabhead = "Worldwide Hardware Shipments"; my $dom = Mojo::DOM->new(get($url)); my @tabs = $dom->find('table')->each(); my (@col1, @col2, $len2); foreach $table (@tabs) { $head = $table->find('th[colspan="2"]')->to_array->[0]; next if(!defined($head)); next if($head->content !~ /$tabhead/); my @trs = $table->find('tr')->each; foreach $tr (@trs) { @row = $tr->find('td')->each; next if(@row != 2); my $quot = encode('utf-8', $row[0]->content); my $life = encode('utf-8', $row[1]->content); $quot =~ s/<\/?small>//g; $life =~ s/<\/?small>//g; grep { $quot =~ s/$_/$months{$_}/; } keys(%months); grep { $life =~ s/$_/$months{$_}/; } keys(%months); $len1 = ($image->QueryFontMetrics(font=>$font, pointsize=>9, text=>$quot))[4]; $len2 = ($image->QueryFontMetrics(font=>$font, pointsize=>9, text=>$life))[4]; push @col1, $quot; push @col2, $life; push @len2, $len2; } } $y = 114; while($quot = pop(@col1)) { $life = pop(@col2); $len2 = pop(@len2); $image->Annotate(font=>$font, pointsize=>9, fill=>'white', text=>$quot, x => 110, y => $y); $image->Annotate(font=>$font, pointsize=>9, fill=>'white', text=>$life, x => 390-$len2, y => $y); $y -= 10; last if($y < 27); } $image->Annotate(font=>$font, pointsize=>14, fill=>'white', text=>"#4theplayers", x => 414, y => 112); $image->Annotate(font=>$font, pointsize=>14, fill=>'white', text=>"#продажи", x => 14, y => 112); $font = "Segoe-WP-Bold"; $image->Annotate(font=>$font, pointsize=>14, fill=>'white', text=>$tabhead, x=>100, y=>18); my $logo = Image::Magick->new(); $logo->Read("ps4logo.png"); $logo->Resize( geometry => "x96"); $image->Composite(image => $logo, x=>404, y=>0); undef $logo; $image->Write("/var/www/xbox/gc/sony.jpg"); undef $image; Занесите кто-нибудь синим в их темы, а то я там плохо ориентируюсь. отличный геймеркард :D Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
fallen8rwtf 0 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 (изменено) Вы молодец! И спасибо больше за такую проделанную работуИ я тут искренне удивился что в HMCC наиграл больше чем в The Division О_О Изменено 29 ноября 2016 пользователем fallen8rwtf Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
TEPMuT 0 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Спасибо! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
vincentspb 0 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Супер!!! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
greyjedi 0 Опубликовано: 29 ноября 2016 Поделиться Опубликовано: 29 ноября 2016 Как насчет изменить поле ввода геймертага, чтоб он по первым буквам находил нужный. А то там уже много накопилось. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
d1mka 0 Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @flashgun, хочу поставить ваш геймеркард, но так и не понял, как свой геймертаг ввести, там предлагает только из списка выбрать? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Dadenard 0 Опубликовано: 30 ноября 2016 Поделиться Опубликовано: 30 ноября 2016 @flashgun, спс БРО Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
flashgun 0 Опубликовано: 30 ноября 2016 Автор Поделиться Опубликовано: 30 ноября 2016 @flashgun, хочу поставить ваш геймеркард, но так и не понял, как свой геймертаг ввести, там предлагает только из списка выбрать?Список собирался по форуму, скрипт сканит ветки и смотрит на геймеркарды, откуда и брались геймертаги. Самый простой вариант -- пришлите свой геймертаг личкой, добавлю вручную. Как насчет изменить поле ввода геймертага, чтоб он по первым буквам находил нужный. А то там уже много накопилось.В мобильных браузерах оно почему-то не работает, на десктопных выбор по буквам наличествует. Пробовал в файрфоксе, ие11 и эдже. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
flashgun 0 Опубликовано: 1 декабря 2016 Автор Поделиться Опубликовано: 1 декабря 2016 Ребята! Спасибо за тёплые слова! С момента широкого анонса исправил пару мелких багов и внёс минорные изменения в дизайн. Вопрос: будет ли работать геймеркард на других форумах?Ответ: да, только он не будет контекстный. Опробовал на forzamotorsport.net.Можно ли приделать контекст? Да, можно. А смысл? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
RC_Gremlin 0 Опубликовано: 1 декабря 2016 Поделиться Опубликовано: 1 декабря 2016 Ого статистика показывает даже сколько я играл в обливион.) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
vincentspb 0 Опубликовано: 1 декабря 2016 Поделиться Опубликовано: 1 декабря 2016 Такого, ещё не было нигде!!! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
flashgun 0 Опубликовано: 1 декабря 2016 Автор Поделиться Опубликовано: 1 декабря 2016 @RC_Gremlin, это потому что ты в неё на хуане по обратке играл. Хуан для всех обраточных игр добавляет свой обёрточный titleId, по которому фиксирует в activity факты запуска и получения ачивок. Поэтому оно покажет инфу из сессий, когда указан период, год там, месяц или квартал. А вот "за весь период" не покажет. Я теперь в этом вопросе эксперд. И да, такого рода инфы нет нигде, тут @vincentspb, прав :) Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Bluetooth 0 Опубликовано: 1 декабря 2016 Поделиться Опубликовано: 1 декабря 2016 @flashgun, Спасибо тебе огромное! очень классный геймеркард! пользуюсь и радуюсь! Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
RC_Gremlin 0 Опубликовано: 2 декабря 2016 Поделиться Опубликовано: 2 декабря 2016 @RC_Gremlin, это потому что ты в неё на хуане по обратке играл. Хуан для всех обраточных игр добавляет свой обёрточный titleId, по которому фиксирует в activity факты запуска и получения ачивок. Поэтому оно покажет инфу из сессий, когда указан период, год там, месяц или квартал. А вот "за весь период" не покажет. Я теперь в этом вопросе эксперд. И да, такого рода инфы нет нигде, тут @vincentspb, прав :)Раньше не показывало, единственное чего нет - это полученных ачивок в статистике. Время игры стало учитываться правильно, до этого как то не правильно вело себя. Сатистика с 360 у меня какая то кривая местами в профиле вообще если смотреть через сам бокс. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
mad8vad 465 Опубликовано: 2 декабря 2016 Поделиться Опубликовано: 2 декабря 2016 (изменено) А зачем так много ачивок выводить прямо на карте? Сделай лучше несколько последних, а просмотр общего списка по клику. Дизайн так вообще ужасен, посмотри в сторону psnprofiles, по-моему там самый нормальный. Также можно сделать подстановку картинки игры на фоне и последние ачивки из нее же. А вместо списка платин, золота, серебра и бронзы можно уже статистику по конкретной игре добавить http://card.psnprofiles.com/1/mad8vad.png http://card.psnprofiles.com/1/Kawaiikin112.png http://card.psnprofiles.com/1/uiz-NET.png Брать геймертаг с картинки неудобно: его предлагается перенабирать руками что ли? Некоторые фиг наберёшь вот так запросто, например, носок в сметане, или конские наборы букв и цифрВ твоем случае все точно также, если пользователь вставил просто картинку без ссылки на профиль. Так у 2 и 3 сообщения в этой теме и сделано Изменено 2 декабря 2016 пользователем mad8vad Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
flashgun 0 Опубликовано: 2 декабря 2016 Автор Поделиться Опубликовано: 2 декабря 2016 @mad8vad, спасибо за комменты! Было бы круто, конечно, но у меня и так чудовищно много времени ушло на "красоту", при том, что я не дизайнер ни разу. Если есть такая возможность, для меня идеально получить карту, что куда вписывать, в прямоугольник со сторонами 500х120. Потому как вот это вот размещение картиночек и буков и обсчёт точек -- кайфа для меня куда меньше, точнее, его вообще нет :-/ Ещё у них шрифты классные. Я провозился очень много, пока нашёл более-менее читаемый Segoe-UI, и то не особенно здорово получается. Из мелочёвки: добавил в правом углу значение из lastPlayed в случае, если инфы в разделе collectionlistsstatistics мало или её вообще нет. Если хотите, чтобы появилось на всех гк, просто ещё раз зарегистрируйте свой гт на странице регистрации. Оно перерисует все картинки.А зачем так много ачивок выводить прямо на карте? Сделай лучше несколько последних, а просмотр общего списка по клику.А что на освободившееся место вытащить? Или просто шрифт увеличить?На самом деле я подстраивался под правый столбец, это где статистика из игры. Самое большое количество строк, которое там может быть -- 10. Вот и вписывал я их. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас