Страница 1 из 2

Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 11:15
diesel2001
К сожалению меня не наделили дикими способностями к программированию (не хватает знаний) поэтому прошу помочь разбирающихся людей.

В roster.php есть функция окраски игроков в тот или иной цвет в зависимости от последней даты посещения аккаунта.

Как это реализовано сейчас.
При использовании модуля 2.1.6 был выявлено следующие.
Игрок клана который не выходит в бои, с прошлого года (это подтверждает "дата последнего боя" доступная только из клиента игры) подсвечивается синим.
И действительно по информации с сайта (https://worldoftanks.ru/community/) игрок заходит периодически в аккаунт и информация обновляется. То есть модуль отрабатывает правильно.

Попробую объяснить почему хочется изменить.
Окрашивать игрока в цвет в зависимости от того был он в бою или нет.

Решение как вижу его я.
Параметр "дата последнего боя" не доступна через api и по ней нельзя сделать сравнение.
Есть закладка "рейтинг" с таблицей в которой есть графа "Проведено боев" и мы знаем текущую "дату"

Смотрим "Проведено боев" смотрим "Дату"
если "Проведено боев" увеличилось по сравнению с предыдущей датой игрок был в боях (красим в синий).
если боев не было то начинаем отсчитывать дни и соответственно если боев небыло <= 7 (красим в зеленый) <=14 )красим в красный) и т.д.

Если я что-то не правельно понимаю, то пожалуйста объясните.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 11:45
shw
Кхм. перефразирую ваш запрос - есть текущие данные (закешированые) и есть ежедневный сбор данных кроном.
из кэша вычитаем данные за последнюю отработку крона. если разница =0 - то считаем дальше.
вычитаем данные перебором за н дней назад до получения любой разницы.
Теоритически такое реально сделать, но:
у нас есть такая вещь, как "провалы" в сборе данных, и мы будем иметь следующее:
предположим, что за 4ре дня в базе сохранились следующее кол-во боев: 100, 120, 0, 120 и в кэше лежит тоже 120.
по разнице мы будем видеть что 2 дня назад данный игрок "якобы" воевал. Если исключать ноль, то будет погрешность в 1 день.
а если несколько провалов подряд по одному игроку?. в общем, надеюсь, что суть уловили.

Ну и такой подход будет отрицательно сказываться на скорости загрузки модуля. (таб с перебором по 100 игроков) утяжелит где-то на 1-2 секунды.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 12:12
Exinaus
Ты лучше посчитай количество запросов в базу. Количество игроков, умноженное на количество дней, для проверки когда у человека были бои.
А еще какую стену текста надо написать для исключения вот этих нулей ...
В общем, я желаю счастья и шлю лучи добра тому кто соберется это делать. Т.к. никаких нервов без этого не хватит.

И все ради того что бы изменить цвет ника в одной из табличек :D

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 12:28
diesel2001
Крон как мне пояснили не имеет отношения к вкладке "рейтинг" или я что-то снова не правильно понял?

Я дома у себя поставил, скрипт на сервер, что бы помучить, cron, даже руками не пинаю, а данные в "рейтинге" есть, они же все из api сервера.
А вот Активность общая, Активность награды, Лучшие результаты пустые так как требуют cron.
На хабре вроде есть статья где человек лесапед изобретал. Ему задачу поставили обойтись без crona и там есть решение.

Exinaus писал(а):Ты лучше посчитай количество запросов в базу. Количество игроков, умноженное на количество дней, для проверки когда у человека были бои.
Снова лыжи плохо смазал. Зачем нам знать когда были бои? Нужно только смотреть изменился счетчик "кол во боев" или нет, если нет смотреть когда было последние изменение, от этой даты посчитать и окрасить.
то есть нам нужно помнить положение счетчика и изменился он или нет по отношению к текущей дате.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 12:37
shw
diesel2001 писал(а):Снова лыжи плохо смазал. Зачем нам знать когда были бои? Нужно только смотреть изменился счетчик "кол во боев" или нет, если нет смотреть когда было последние изменение, от этой даты посчитать и окрасить.
то есть нам нужно помнить положение счетчика и изменился он или нет по отношению к текущей дате.

Ой-ой-ой. т.е. вы предлагаете еще и в базе хранить данные "счетчика"? Ню-ню.
и опять же - будет "провал" - счетчик будет скакать туда сюда. что еще хуже, чем перебор.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 12:39
Exinaus
diesel2001 писал(а):Снова лыжи плохо смазал... Зачем нам знать когда были бои? Нужно только смотреть изменился счетчик "кол во боев" или нет, если нет смотреть когда было последние изменение, от этой даты посчитать и окрасить.
то есть нам нужно помнить положение счетчика и изменился ли он или нет.

Даже объяснять уже наверно не буду. ну вот не понимаете, ну и ладно. Попробуйте разобраться какие именно данные есть в модуле и что они содержат, может дойдет тогда само.
Удачи, в общем.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 12:49
diesel2001
shw писал(а):Ой-ой-ой. т.е. вы предлагаете еще и в базе хранить данные "счетчика"? Ню-ню.
и опять же - будет "провал" - счетчик будет скакать туда сюда. что еще хуже, чем перебор.

Я не видел структуру базы данных, поэтому не знаю хронятся данне или нет. По видимому нет и данные всякий раз при открытии грузятся с сервера.
Тогда да, это дополнительная запись "счетчик" и "дата изменения счетчика".
Я же говорю, что не селен в этом, не понимаю, что смешного?
Exinaus писал(а):Даже объяснять уже наверно не буду.
Надежда все же есть "Наверное" :D
И Вам творческих успехов!

з.ы. если кто все же сочтет это реализуемым, спасибо.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 13:35
shw
diesel2001 писал(а):Я не видел структуру базы данных, поэтому не знаю хранятся данные или нет. По видимому нет и данные всякий раз при открытии грузятся с сервера.
Тогда да, это дополнительная запись "счетчик" и "дата изменения счетчика".
Я же говорю, что не селен в этом, не понимаю, что смешного?

Данные хранятся в кэше (более-менее актуальные) и в базе (ежедневные слепки об игроках). если что.
вам предложили два варианта - делать и не делать, и обрисовали как делать и как не делать =)
а на блюдечке (ввиду занятости основных модописателей) пока никто не сможет предложить.

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 13:40
diesel2001
интересно а как это реализованное на worldofclans ресурсе. Если выбрать игрока там расписано кол-во боев по каждому дню, у нас это тоже возможно путем выборки но у них видно, в статистике клана в графе посещение сколько дней за месяц игрок был в бою.

shw писал(а):Данные хранятся в кэше (более-менее актуальные) и в базе (ежедневные слепки об игроках). если что.
вам предложили два варианта - делать и не делать, и обрисовали как делать и как не делать =)
а на блюдечке (ввиду занятости основных модописателей) пока никто не сможет предложить.
Я же попросил помочь кто может и так же упомянул, что моих знаний не достаточно. =)

Интересно еще в строке api указывается токен как неофициальной статистики =) Интересно есть токен официальной статистики? :D

Re: Помогите подправить roster

СообщениеДобавлено: 14 фев 2013, 14:40
shw
[quote="diesel2001":3ck[цензура]f]интересно а как это реализованное на worldofclans ресурсе. Если выбрать игрока там расписано кол-во боев по каждому дню, у нас это тоже возможно путем выборки но у них видно, в статистике клана в графе посещение сколько дней за месяц игрок был в бою.
[/quote:3ck[цензура]f]
Уже много раз обсуждалось, что модуль делает только то, подо что он задумывался. А на том ресурсе скорей всего реализовано как и в этом модуле, только там вы видите ОДНОГО игрока с календариком, поэтому загрузку по обработке особо не замечаете, а вот запустите на том ресурсе со своего компа 100 человек, да еще и одновременно почти =)
+ там следят за корректным сбором данных, т.к. хостинг платный и т.д. и т.п.
[quote="diesel2001":3ck[цензура]f]
Я же попросил помочь кто может и так же упомянул, что моих знаний не достаточно. =)
[/quote:3ck[цензура]f]
Вот вас и просвещают =)
[quote="diesel2001":3ck[цензура]f]
Интересно еще в строке api указывается токен как неофициальной статистики =)
Интересно есть токен официальной статистики? :D[/quote:3ck[цензура]f]
Есть =) Погуглите, если уж интересно.