Перейти к публикации
[ {"link":"https://topdeck.ru/apps/toptrade/member/32/promo/1", "image":"https://topdeck.ru/apps/toptrade/member/32/promo/1/image"}, {"link":"https://topdeck.ru/apps/toptrade/member/32/promo/2", "image":"https://topdeck.ru/apps/toptrade/member/32/promo/2/image"} ]

Готовим базу карт используя api scryfall.com


ASVShade
 Поделиться

Рекомендованные сообщения

Карта json это тоже объект и ему тоже нужен класс

Аналогично классу страницы создаем класс карты.

С документации api на сайте scryfall

https://scryfall.com/docs/api/cards

создаем нужные нам поля.

Мне лично пока хватает 18 полей на скрине, но понятно их гораздо больше.

07.jpg

Ну и пишем сами нужный нам вывод. (printline)

Тут кому что надо, и в строку, и столбец, и если нужно в sql код и в xml.

Мне нужно строка с TAB`ами

Image_Uris

Prices

Это тоже отдельные классы и их тоже нужно создать.

Там много таких классов (у всех есть описания)

08.jpg

После запуска видим в консоли вот это.

Остается определить начальный запрос (на скрине это сет m20) и качаем хоть всю базу.

09.jpg

Больше всего радует это возможности google.gson

Нам вообще не нужно думать про парсинг. Просто кидаем строку в класс и все данные сами вносятся.

ScryfallCards cards = gson.fromJson(s, ScryfallCards.class);

Когда то я даже и мечтать о таком не мог.

 

Я на самом деле то и не особо программист уже. Так для себя, что то по мелочи делаю.

Ясно, бывалые Яверы найдут в моем коде кучу всего не правильно. Уж извините, как могу(

 

Повторюсь кому нужны исходники скину.

 

Может кому то и было это интересно, дерзайте.

  • Нравится 1
  • Рукалицо 1
  • Спасибо 1
  • Плюс 1
Ссылка на комментарий
Поделиться на других сайтах

Я не очень понял зачем :)

Всё же от задачи зависит.

Я, например забираю балк https://scryfall.com/docs/api/bulk-data варю из него небольшой индекс для поиска по нужным мне сетам. Затем граблю сити для матчинга цен и складываю в кеш на час.

Ссылка на комментарий
Поделиться на других сайтах

UPD: пост как-то в процессе обновился. Вижу что база для своей проги.

ПС почему не выкачивать балк разово?

Ссылка на комментарий
Поделиться на других сайтах

Можно и разово, основную идею это использование Google.gson это не меняет. Правда 140 мегов сунуть в объект я не пробовал.

И тащить запросами определённые карты: сеты или просто синглы для оперативности иногда гораздо проще и нужнее

Сам же выше писал все зависит от задачи. В первый раз булк, полное обновление тоже, а точечное обновление лучше запросами 

Ссылка на комментарий
Поделиться на других сайтах

Вообще ничего не понял, но на всякий случай плюсанул 

Ссылка на комментарий
Поделиться на других сайтах

Мы для местных ребят сделали такой небольшой обменник c поиском карт в https://api.magicthegathering.io/ ( мультеверсID) и получением картинок напрямую из https://gatherer.wizards.com/
Скрайфол апи позволяет скармливать лист id и получать лист карт в ответ  https://api.scryfall.com/cards/collection что очень удобно =)

Selection_870.png

Selection_869.png

Selection_868.png

Изменено пользователем gloomezis
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...