Date: 2020/10/23 10:59:22 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
OfferStore_Get_Task:
type: task
script:
- define dat "{<&dq>api_key<&dq>: <&dq>00000000000000000000000000000000000000000000000000000000000<&dq>}"
- ~webget https://api.etilbudsavis.dk/v2/sessions post:<[dat]> headers:Content-type/application/json save:request
# - ~webget https://google.com post:<[dat]> headers:Content-type/application/json save:request
- define result <entry[request].result>
- define token <util.parse_yaml[<[result]>].get[token]>
- ~webget https://api.etilbudsavis.dk/v2/offers?_token=<[token]>&limit=54 save:offer_returned
- define result "{ <&dq>data<&dq>: <entry[offer_returned].result> }"
- define offers <util.parse_yaml[<[result]>].get[data]>
- flag server OfferStore.Offer_Items:!
- foreach <[offers]>:
- define offer <[value]>
- define priser <[offer].get[pricing]>
- define link <[offer].get[id]>
- define desc <&7><[offer].get[description].substring[0,200]>
- define lore "<[desc].split_lines_by_width[200].lines_to_colored_list.replace[|].with[-]>|<&a><[priser].get[price]>,- <&7><[priser].get[currency]>|<&7>|<&7>Klik for link"
- define display_name <&6><[offer].get[heading].substring[0,40].replace[|].with[-]>
- define item <script[Util_Blocks].data_key[config.stained_glass].random>[display_name=<[display_name]>;lore=<[lore]>;nbt=OfferStore_link/<[link]>]
- flag server OfferStore.Offer_Items:->:<[item]>
OfferStore_Events:
type: world
events:
on system time hourly:
- run OfferStore_Get_Task
on player clicks in OfferStore_Menu priority:-1:
- determine cancelled passively
- define display <context.item.display.strip_color||null>
- if <[display]> == null:
- stop
- if !<context.item.has_nbt[OfferStore_link]>:
- stop
- narrate format:util_ff <&a>https://etilbudsavis.dk/offers/<context.item.nbt[OfferStore_link]>
- inventory close d:<context.inventory>
OfferStore_Menu:
type: inventory
inventory: CHEST
title: <&8>Tilbudsavisen
size: 54
slots:
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
- "[] [] [] [] [] [] [] [] []"
procedural items:
- determine <server.flag[OfferStore.Offer_Items].as_list||<list[]>>
OfferStore_Command:
type: command
name: tilbud
aliases:
- offers
- 10
- 10er
- tier
- avisen
- avis
- tilbudsavisen
- offer
- supermarket
- market
- marked
- supermarked
usage: /tilbud
description: Viser tilbud fra tilbudsavisen
script:
- if <server.has_flag[OfferStore.Offer_Items]>:
- inventory open d:OfferStore_Menu
- else:
- narrate format:util_ff "<&7>Der er ingen Tilbud at vise lige nu."