Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

GDocs - вытягиваем цены. Гайд для совсем чайников. UPD 18.02.2019


  • Авторизуйтесь для ответа в теме
159 ответов в теме

#141
Fedaykin

Fedaykin

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 298 сообщений
24
  • EVE Ingame:Freeman Fedaykin
  • Corp:SoT
  • Ally:DS.
  • Client:Eng

Файл прекрасен. А можно попросить добавить Р1-P3? Пожалуйста - пожалуйста! :blush:


  • 0
Ценой свободы является вечная бдительность.

Изображение

#142
fxea

fxea

    Damage control

  • Faction pilots
  • PipPipPipPipPip
  • 2877 сообщений
755
  • EVE Ingame:^^
  • EVE Alt:Xeata
  • Corp:-D.G-
  • Ally:WarDogs
  • Channel:X-Tea
  • Client:Eng

Если про мой, то 1) спасибо, 2) 1-3 дня подожди, 3)Сейчас делаю для себя другой вариант, под свои задачи, там будут некоторые бпц и больше наименований материалов, но не будет медианных цен.

 

Если интересно что то еще пишите сразу, если в наработках есть то закину в паблик версию. если медиана не нужна, то из паблик уберу. медианные цены это отдельные запросы, они замедляют работу и могут спровоцировать ограничения по количеству запросов....

 

Так же можете дать другие мелкие региональные рынки, добавлю

 

как бы без скриптов, только средствами гуглодоков получить "правильные" селл/бай, с учетом объемов?


Сообщение отредактировал fxea: 10 December 2018 - 9:20

  • 0

Сущности, игнор которых делает форум лучше: massdriver , Jerome Higs , КотМэн , anknown , Smoketriada , Likon , Corpse
<url=fitting:17843:2048;1:33896;3:1335;23:2488;5:2185;5:2446;5::>VNI ULTIMATE HULL TANK</url>
"Еще неизвестно запасы чего исчерпаются в этой игре раньше. Минералов или... игроков." © Art1st


#143
New Strannik

New Strannik

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8624 сообщений
1077
  • EVE Ingame:New Strannik
  • DUST Ingame:Ivan Korrenoy
  • EVE Alt:+Ctrl+Del
  • Corp:SHAVED
  • Client:Eng

как бы без скриптов, только средствами гуглодоков получить "правильные" селл/бай, с учетом объемов?

 

Могу ошибаться, т.к. есть зависимость от API , но скорей всего в запросе с типами sell и buy есть доп.параметр:

minQ=

Сообщение отредактировал New Strannik: 10 December 2018 - 9:37

  • 0

#144
Fedaykin

Fedaykin

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 298 сообщений
24
  • EVE Ingame:Freeman Fedaykin
  • Corp:SoT
  • Ally:DS.
  • Client:Eng
Да, про твой.)
Медианки не нужны.Предпочитаю "акцент" рынка смотреть ингейм.
Конечно подожду.
  • 0
Ценой свободы является вечная бдительность.

Изображение

#145
fxea

fxea

    Damage control

  • Faction pilots
  • PipPipPipPipPip
  • 2877 сообщений
755
  • EVE Ingame:^^
  • EVE Alt:Xeata
  • Corp:-D.G-
  • Ally:WarDogs
  • Channel:X-Tea
  • Client:Eng

Спойлер

 

использую https://api.evemarketer.com/ec/
но про https://esi.evetech.net/ui/#/Market тоже знаю
 

....добавить Р1-P3? ...

 

Да, про твой.)

Спойлер

спойлерЧто нибудь еще? ID для этого уже в принципе готовы.

Raw moon
Processed moon
Advanced moon
Polymer material
Booster gas
Fullerenes
Ice products
Minerals
Planetary P1
Planetary P2
Planetary P3
Planetary P4
Ancient Salvage
Salvage
Abyssal materials
Fuel block

  • 0

Сущности, игнор которых делает форум лучше: massdriver , Jerome Higs , КотМэн , anknown , Smoketriada , Likon , Corpse
<url=fitting:17843:2048;1:33896;3:1335;23:2488;5:2185;5:2446;5::>VNI ULTIMATE HULL TANK</url>
"Еще неизвестно запасы чего исчерпаются в этой игре раньше. Минералов или... игроков." © Art1st


#146
New Strannik

New Strannik

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8624 сообщений
1077
  • EVE Ingame:New Strannik
  • DUST Ingame:Ivan Korrenoy
  • EVE Alt:+Ctrl+Del
  • Corp:SHAVED
  • Client:Eng

 

использую https://api.evemarketer.com/ec/

ForQuery{
bid:	boolean
is buy?

types:	[...]
regions:	[...]
systems:	[...]
hours:	integer ($int32)
always 0

minq:	integer ($int32)
always 0

}

на eve-central работало, пока был жив.


Сообщение отредактировал New Strannik: 10 December 2018 - 10:30

  • 0

#147
Fedaykin

Fedaykin

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 298 сообщений
24
  • EVE Ingame:Freeman Fedaykin
  • Corp:SoT
  • Ally:DS.
  • Client:Eng


использую https://api.evemarketer.com/ec/
но про https://esi.evetech.net/ui/#/Market тоже знаю


спойлерЧто нибудь еще? ID для этого уже в принципе готовы.


Raw moon
Processed moon
Advanced moon
Polymer material
Booster gas
Fullerenes
Ice products
Minerals
Planetary P1
Planetary P2
Planetary P3
Planetary P4
Ancient Salvage
Salvage
Abyssal materials
Fuel block


Это просто праздник какой-то. Здесь все, что нужно на "сейчас" и пол года вперед!
  • 0
Ценой свободы является вечная бдительность.

Изображение

#148
fxea

fxea

    Damage control

  • Faction pilots
  • PipPipPipPipPip
  • 2877 сообщений
755
  • EVE Ingame:^^
  • EVE Alt:Xeata
  • Corp:-D.G-
  • Ally:WarDogs
  • Channel:X-Tea
  • Client:Eng

спойлерСсылка поменялась

 

 

Остальное позже, потому что ИД это еще не все что нужно.

Кстати, проверяйте на первых порах соответствие ИД наименованию. Поскольку источник ИД - интернеты, а наименований списком - ингейм маркет


Сообщение отредактировал fxea: 12 December 2018 - 9:44

  • 0

Сущности, игнор которых делает форум лучше: massdriver , Jerome Higs , КотМэн , anknown , Smoketriada , Likon , Corpse
<url=fitting:17843:2048;1:33896;3:1335;23:2488;5:2185;5:2446;5::>VNI ULTIMATE HULL TANK</url>
"Еще неизвестно запасы чего исчерпаются в этой игре раньше. Минералов или... игроков." © Art1st


#149
Fedaykin

Fedaykin

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 298 сообщений
24
  • EVE Ingame:Freeman Fedaykin
  • Corp:SoT
  • Ally:DS.
  • Client:Eng

Не стыкуется с тем, что вижу на рынке. Как считаются средние цены?


  • 0
Ценой свободы является вечная бдительность.

Изображение

#150
fxea

fxea

    Damage control

  • Faction pilots
  • PipPipPipPipPip
  • 2877 сообщений
755
  • EVE Ingame:^^
  • EVE Alt:Xeata
  • Corp:-D.G-
  • Ally:WarDogs
  • Channel:X-Tea
  • Client:Eng

Не стыкуется с тем, что вижу на рынке. Как считаются средние цены?

вот так - https://evemarketer.com/  и  https://api.evemarketer.com/ec/ (это к тому что считает не мой гуглодок а ивмаркетер)

 а нестыковки возможны еще и по причине несоответствия ИД наименованию.. я проверял глазками, кое что набирал ручками, мог и ошибиться...по конкретным позициям которые вызывают сомнения напиши в личку.


  • 0

Сущности, игнор которых делает форум лучше: massdriver , Jerome Higs , КотМэн , anknown , Smoketriada , Likon , Corpse
<url=fitting:17843:2048;1:33896;3:1335;23:2488;5:2185;5:2446;5::>VNI ULTIMATE HULL TANK</url>
"Еще неизвестно запасы чего исчерпаются в этой игре раньше. Минералов или... игроков." © Art1st


#151
grober

grober

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 150 сообщений
2
  • EVE Ingame:Groberr
  • Corp:[FSP-T]
  • Client:Рус

http://rgho.st/7RTcV2Llv

 Перестал работать скрипт:(
кто может починить или пригодится кому..:)

Там в принципе старая таблица ID-наименование сохранилась.


  • 0

#152
Aliner

Aliner

    WTF?!

  • -10.0
  • PipPipPipPipPip
  • 2078 сообщений
725
  • EVE Ingame:Alner Greyl
  • Client:Eng

:blink:  фига вы тут развели. все же гораздо проще. 

 

уходит исправлять первый пост


  • 0

Пару дней назад НЦ стреляли хаб, а мы его качали, вчера вот СБУ пилили пока НЦ стреляли станку. © hydr0gen

паладин - это рейдер с радиаторами и световыми пушками. джедай с батареей б****  © Finne Trolle

 


#153
Aliner

Aliner

    WTF?!

  • -10.0
  • PipPipPipPipPip
  • 2078 сообщений
725
  • EVE Ingame:Alner Greyl
  • Client:Eng
Т.к. я продолжаю получать письма о том, что не работает подтягивание цен, а недавно был день благих дел, то решила обновить гайд. 
 
Глава 1. Как перестать заниматься ерундой и получать нужные ID без боли и страданий (боль и страдания будут, но только на начальном этапе):
 
1) Открываем гуглдок. Называем его, например, TypeID - Этот документ нужен, чтобы подтягивать ID нужного нам предмета
 
2) В строчку C1 вписываем: 
=importData("https://www.fuzzwork.co.uk/resources/typeids.csv")

3) Ждем пока прогрузится. Пока ждем переименовываем лист на TypeID (правой кнопкой по названию листа - rename) 

Дальше из-за особенности импорта и гуглдока
4) В строчку А1 вписываем =D1
5) в строчку B1 вписываем =C1
Получается дублирование колонок. Это требуется, чтобы потом вытягивать.
 
ID готовы и больше там ничего менять не надо. Таблица будет автоматически меняться по мере обновления первого файла. 
 
Теперь есть 2 варианта: 
1) Импорт ID по названию сразу в другой документ 
2) Вытягивание нужных ID в соседний лист и оттуда уже в документ с расчетами. 
3) Импорт уже готового полного списка
 
Рассмотрим первый вариант: Импорт ID по названию сразу в другой документ. Данный способ довольно прилично заставит конечный документ пролагать на загрузке.
 
1) Жмем Share справа наверху или File - Share (я хз как на русском) 
 
2) Делаем ссылку. Копируем её. Вытаскиваем из неё кодовую часть. Пример: 
 
Ссылка: 
https://docs.google.com/spreadsheets/d/1Fn992WM0mvo_C54jVk_FhHbRNNfrviaw2864Cri6I90/edit?usp=sharing

3) Создаем в документе с рассчетами лист, называйте, как больше нравится. 

 
Пишем в стобик А нужные нам итемы
Вставляем в столбик B следующую формулу
=VLOOKUP(A1,IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Fn992WM0mvo_C54jVk_FhHbRNNfrviaw2864Cri6I90/edit#gid=0","TypeID!A1:F"),2,FALSE)

Либо 

=Query(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Fn992WM0mvo_C54jVk_FhHbRNNfrviaw2864Cri6I90/edit#gid=0","TypeID!A1:F"),"Select Col2 where Col1='"&A1&"'")

Оба способа рабочие. Смотрите, что будет меньше лагать. 

 
4) Обновите страницу (Да, таблица в том документе огромная, поэтому отсюда и лаг на прогрузке)
5) Вуаля
 
Рассмотрим второй вариант: Вытягивание нужных ID в соседний лист и оттуда уже в документ с рассчетами. 
 
1) Идем в лист TypeID 
2) Выделяем колонки А и В
3) Жмем правой кнопкой
4) Define Named range
5) Называем его, например, R_ID
6) Идем в лист, куда будем тянуть айдишники 
7) В ячейку B1 Пишем 
=VLOOKUP(A1, R_ID, 2, False)
8) Пишем нужные названия
9) Импортируем список в другой документ
=VLOOKUP(D14,IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Fn992WM0mvo_C54jVk_FhHbRNNfrviaw2864Cri6I90/edit#gid=0","Example!A1:B"),2,FALSE)

(Можно и через Query, но как показала практика там жесткие тупняки) 

 
Третий вариант: Импортируем сразу весь список того, что мы выбрали
 
Пишем в ячейку A1
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Fn992WM0mvo_C54jVk_FhHbRNNfrviaw2864Cri6I90/edit#gid=0","Example!A1:B")

Это загрузит сразу весь список с названием и ID

 
Примеры таблиц
 
https://docs.google....dit?usp=sharing - таблица со всеми ID
https://docs.google....dit?usp=sharing - Примеры перетаскивания ID различными способами

 


Глава 2: Подтягиваем цены

 

Дальше буду показывать со скриншотами, т.к. не все знакомы с функционалом доков, или не понимают, что и как. 
Сразу оговорюсь, это основа, при которой цены можно выдернуть, дальше модифицируйте свои таблицы по вашему желанию. 
 
Шаг 1. Создаем таблицу/открываем старую
Шаг 2. Создаем лист, куда собственно эти цены мы и будем импортировать. У меня это называется price . (Да, сразу отмечу, что у меня 2 таблицы для цен. price source - импортирует цены, price - подставляет цены к названиям. Мне так удобней, а как вам делать - ваша головная боль) 
Шаг 3. Идем: Tools -> Script Editor
QfqcFW7.png
 
Шаг 4. Дальше откроется новая ссылка, где нам будет предложено выбрать, что создаем. Тыкаем на Blank Project. 
5aZ35ug.png
 
Шаг 5. Стираем то, что написано в редакторе. И вставляем: 

Спойлер

Шаг 6. Сохраняем. Я обзываю этот скрипт loadRegionAggregates

 

. Больше нам это не требуется (потребуется, если надо будет фильтровать, об этом ниже) 
Шаг 7. Идем на лист Price 

В ячейку А1 вставляем: 

=loadRegionAggregates(Types!A:A)

Шаг 8. Наслаждаемся результатом. 

 

Что можно поправить в скрипте: 

Изменить регион 

 

regionID=10000002; << замените на нужный

 

parseInt(rows[i].getChild("buy").getChild("volume").getValue()),  << Объем покупки

parseFloat(rows[i].getChild("buy").getChild("avg").getValue()), << Средняя цена покупки
parseFloat(rows[i].getChild("buy").getChild("max").getValue()), << Максимальная цена покупки
parseFloat(rows[i].getChild("buy").getChild("min").getValue()), << Минимальная цена покупки
parseFloat(rows[i].getChild("buy").getChild("stddev").getValue()), << Что-то с отклонением (кто знает, напишите плз) 
parseFloat(rows[i].getChild("buy").getChild("median").getValue()), << Медиана покупки 
parseFloat(rows[i].getChild("buy").getChild("percentile").getValue()), << Что-то с процентами(кто знает, напишите плз) 
parseInt(rows[i].getChild("sell").getChild("volume").getValue()), << Объем продаж 
parseFloat(rows[i].getChild("sell").getChild("avg").getValue()), << Средняя цена продажи
parseFloat(rows[i].getChild("sell").getChild("max").getValue()), << Максимальная цена продажи
parseFloat(rows[i].getChild("sell").getChild("min").getValue()), << Минимальная цена продажи
parseFloat(rows[i].getChild("sell").getChild("stddev").getValue()), << Что-то с отклонением (кто знает, напишите плз) 
parseFloat(rows[i].getChild("sell").getChild("median").getValue()), << Медиана покупки 
parseFloat(rows[i].getChild("sell").getChild("percentile").getValue()), <<Что-то с процентами(кто знает, напишите плз) 
 
ВАЖНО! Если вам не нужна последняя часть, и вы её удаляете: 

parseFloat(rows[i].getChild("sell").getChild("percentile").getValue()), 

то не забудьте поставить

];

после запятой в том месте, где заканчивается список того, что вам нужно. (см. пример ниже) 
 
Пример замены забирающий Объем покупок, Максимальную цену покупки, Объем продаж, Минимальную цену продажи

        var price=[parseInt(rows[i].getAttribute("id").getValue()),
                   parseInt(rows[i].getChild("buy").getChild("volume").getValue()),
                   parseFloat(rows[i].getChild("buy").getChild("max").getValue()),
                   parseInt(rows[i].getChild("sell").getChild("volume").getValue()),
                   parseFloat(rows[i].getChild("sell").getChild("min").getValue())];

 

 

Результат на листе Price: 

https://docs.google....dit?usp=sharing

 

 

p.p.s Оригинал скрипта


Так о чем я :)

 

Один раз настроишь, потом не паришься  :D


Сообщение отредактировал Aliner: 19 February 2019 - 0:17

  • 3

Пару дней назад НЦ стреляли хаб, а мы его качали, вчера вот СБУ пилили пока НЦ стреляли станку. © hydr0gen

паладин - это рейдер с радиаторами и световыми пушками. джедай с батареей б****  © Finne Trolle

 


#154
fxea

fxea

    Damage control

  • Faction pilots
  • PipPipPipPipPip
  • 2877 сообщений
755
  • EVE Ingame:^^
  • EVE Alt:Xeata
  • Corp:-D.G-
  • Ally:WarDogs
  • Channel:X-Tea
  • Client:Eng

Спасибо, клевый системный способ. Но я останусь при своих, поскольку ВСЕ ID не нужны, но их список с названиями из конкретных веток маркета это то что надо. Тем более что свой способ я тоже модернизировал. )

Спойлер
Для того что бы сделать из этого раскрывающийся список и получить ID выбранной в списке позиции я делаю так:

=INDEX(TUT_DIAPAZON_SO_SPISKOM:DVE_KOLONKI;(MATCH(TUT_YACHEIKA_S_PROVERKOI_DANNIH_PO_KOLONKE_S_NAZVANIYAMI;KOLONKA_S_NAZVANIYAMI;0));2)
Мой пример:
=INDEX(C10:D62;(MATCH(Composite!C2;C10:C62;0));2)
Спойлер

Есть 2 нюанса: 1) Синтаксис зависит от языка документа, например вместо точки с запятой просто запятая 2) В примере возвращается 2 колонка списка. У меня ID там потому что я меняю местами после вставки списка в гуглодоки и разбивки на колонки. Изначально ID идут первыми

Сообщение отредактировал fxea: 19 February 2019 - 0:01

  • 1

Сущности, игнор которых делает форум лучше: massdriver , Jerome Higs , КотМэн , anknown , Smoketriada , Likon , Corpse
<url=fitting:17843:2048;1:33896;3:1335;23:2488;5:2185;5:2446;5::>VNI ULTIMATE HULL TANK</url>
"Еще неизвестно запасы чего исчерпаются в этой игре раньше. Минералов или... игроков." © Art1st


#155
zak-zak

zak-zak

    Clone Grade Gamma

  • Tech III Pilots
  • PipPip
  • 110 сообщений
69
  • EVE Ingame:Zak De-Silver
  • Corp:XCursedMinersX
  • Channel:[CURSDiplo]
  • Client:Eng


 

.... [много нужной инфы] ....

Один раз настроишь, потом не паришься  :D

 

Плюс и в закладки..


  • 0

#156
Aliner

Aliner

    WTF?!

  • -10.0
  • PipPipPipPipPip
  • 2078 сообщений
725
  • EVE Ingame:Alner Greyl
  • Client:Eng

 

Спасибо, клевый системный способ. Но я останусь при своих, поскольку ВСЕ ID не нужны, но их список с названиями из конкретных веток маркета это то что надо. Тем более что свой способ я тоже модернизировал. )

Спойлер
Для того что бы сделать из этого раскрывающийся список и получить ID выбранной в списке позиции я делаю так:

=INDEX(TUT_DIAPAZON_SO_SPISKOM:DVE_KOLONKI;(MATCH(TUT_YACHEIKA_S_PROVERKOI_DANNIH_PO_KOLONKE_S_NAZVANIYAMI;KOLONKA_S_NAZVANIYAMI;0));2)
Мой пример:
=INDEX(C10:D62;(MATCH(Composite!C2;C10:C62;0));2)
Спойлер

Есть 2 нюанса: 1) Синтаксис зависит от языка документа, например вместо точки с запятой просто запятая 2) В примере возвращается 2 колонка списка. У меня ID там потому что я меняю местами после вставки списка в гуглодоки и разбивки на колонки. Изначально ID идут первыми

 

 

Способов много. Я просто показала, какими способами можно упростить себе жизнь. Готовых именно решений я не выкладываю. Каждый возьмет нужный для себя и сделает, как удобно 


  • 0

Пару дней назад НЦ стреляли хаб, а мы его качали, вчера вот СБУ пилили пока НЦ стреляли станку. © hydr0gen

паладин - это рейдер с радиаторами и световыми пушками. джедай с батареей б****  © Finne Trolle

 


#157
New Strannik

New Strannik

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 8624 сообщений
1077
  • EVE Ingame:New Strannik
  • DUST Ingame:Ivan Korrenoy
  • EVE Alt:+Ctrl+Del
  • Corp:SHAVED
  • Client:Eng

 

parseFloat(rows[i].getChild("buy").getChild("stddev").getValue()), << Что-то с отклонением (кто знает, напишите плз) 
parseFloat(rows[i].getChild("buy").getChild("percentile").getValue()), << Что-то с процентами(кто знает, напишите плз) 

parseFloat(rows[i].getChild("sell").getChild("stddev").getValue()), << Что-то с отклонением (кто знает, напишите плз) 
parseFloat(rows[i].getChild("sell").getChild("percentile").getValue()), <<Что-то с процентами(кто знает, напишите плз) 

 

stddev - SD, Среднеквадратичное отклонение. 

percentile - Перцентиль, перцентилем и называют, в eve маркете 90% перцентиль.


Сообщение отредактировал New Strannik: 19 February 2019 - 6:49

  • 0

#158
grober

grober

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 150 сообщений
2
  • EVE Ingame:Groberr
  • Corp:[FSP-T]
  • Client:Рус

А можно пример скрипта что бы по ID тянуло данные для стройки/ивента? такого типа https://clip2net.com/s/41o4s07

 

или если можно исправить скрипт в моем файле:), выше выкладывал.


Сообщение отредактировал grober: 04 May 2019 - 20:56

  • 0

#159
Optical Lines

Optical Lines

    Newbie

  • Tech I Pilots
  • 7 сообщений
0
  • EVE Ingame:Optical Lines
  • Client:Рус

обновлений что то нету, это уже не актуально?!


  • 0

#160
valdechok

valdechok

    Clone Grade Alpha

  • Tech II Pilots
  • Pip
  • 46 сообщений
1
  • EVE Ingame:MrWilliams
  • Client:Eng

всем привет, хотелось бы уточнить, в файл typeID ругается формула превышен макс размер, что делать?


  • 0




0 посетителей читают тему

0 members, 0 guests, 0 anonymous users