forked from goryn-clade/reconbot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreconbot.ini.sample
460 lines (327 loc) · 18.9 KB
/
reconbot.ini.sample
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
[EveApplicationInfo]
ApplicationClientID = ""
ApplicationSecretKey = ""
[DiscordWebHooks]
webhook =
mining_webhook =
[NotificationsSpecificWebHooks]
MoonminingAutomaticFracture = mining_webhook
MoonminingExtractionFinished = mining_webhook
MoonminingLaserFired = mining_webhook
[EveCharacters]
char.0.username =
char.0.char_id =
char.0.refresh_token =
char.1.username =
char.1.char_id =
char.1.refresh_token =
[NotificationsMonitored]
AllyJoinedWarAggressorMsg
CorpWarSurrenderMsg
OwnershipTransferred
MoonminingExtractionFinished
SovAllClaimAquiredMsg
SovAllClaimLostMsg
SovStationEnteredFreeport
SovStructureDestroyed
SovStructureReinforced
SovStructureSelfDestructFinished
SovStructureSelfDestructRequested
StationConquerMsg
StationServiceDisabled
StationServiceEnabled
StructureAnchoring
StructureFuelAlert
StructureLostArmor
StructureLostShields
StructureOnline
StructureServicesOffline
StructureUnanchoring
StructureUnderAttack
StructureWentHighPower
StructureWentLowPower
TowerAlertMsg
WarAdopted
WarDeclared
WarInherited
WarInvalid
WarRetractedByConcord
WarSurrenderOfferMsg
[DiscordDefaults]
default_webhook = webhook
default_ping = :gasp:
[DiscordNotificationSpecificPing]
StructureUnderAttack = :scream: @everyone
StructureUnderAttackByBloodRaiders = :scream: :blooders:
StructureUnderAttackByGuristas = :scream: :guristas:
StructureFuelAlert = :fuelpump: @everyone
StructureServicesOffline = :fuelpump: @everyone
WarDeclared = :scream: @everyone
MoonminingExtractionFinished = :gasp: @Mining
#
# Below are the [NotificationFormat] sections that define how the ESI Notifications
# are formatted for display. The section name contains two parts separated by a space,
# the first part is "NotificationFormat" and the second part if the "type" property
# of the Notification.
#
# Following that, a number of Keys can define the exact way the notification is
# displayed.
#
# content = Capturing of "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has started
#
# The content key is the most basic and most configurable part of the notification and
# the oldest supported by ReconBot. It is a format string used with the srt.format()
# python method. There's a special interpolation on templates that allow for method
# calls on YAML properties of the notification content. The format follows:
#
# {0:method_name(YamlProperty)}
#
# Where:
# method_name is one of the method documented below with 1 or more arguments
# between the parentheses.
# YamlProperty is the name of one of the property in the Yaml content.
#
# The methods that are defined are:
#
# get_corporation_or_alliance(entity_id)
# Get an corporation if the entity_id is the ID of a corp or an alliance
# if it is not and then formats them as either get_corporation(entity_id)
# or get_alliance(entity_id)
#
# get_item(item_id)
# Returns the name of the item.
#
# get_planet(planet_id)
# Returns a string composed of the planet name and the system name like
# "Myyhera IV in Myyhera". Might seem redundant but a handful of planet
# such as Caldari Prime in Luminaire or Orid in Amarr are named.
#
# get_moon(moon_id)
# Returns the name of a moon.
#
# get_campaign_event_type(event_type)
# Used by some Sov-related notification to differentiate between an IHUB
# and a TCU and replace the numeric ID with a human readable name.
#
# get_structure_name(structure_id)
# Prints the name of a structure, retrieved from the ESI via the
# structure_id.
#
# timestamp_to_date(timestamp)
# Turns a timestamp (iso format) into a nicer format.
#
# eve_timestamp_to_date(microseconds)
# Turns a timestamp (microseconds since epoch) into a nicer format.
#
# eve_duration_to_date(timestamp, microseconds)
# Converts an iso timestamp and a microseconds offset into a single
# easy to read timestamp.
#
# get_percentage(value)
# Displays a number as a percentage. If the value is <= 1, it's also
# multiplied by 100.
#
# get_isk(isk)
# Formats an ISK amount to a number with 2 decimals.
#
# get_string(value)
# Forces the value into a python string (via str()) effectively. Good
# way to display a string from the yaml as-is.
#
# get_string_preserve_bold(value)
# Same as above but converts <b> and </b> into ** to preserve the bold
# in discord.
#
# get_corporation_from_link(show_info)
# Gets a corporation from a Yaml "Show Info" link like below:
#
# corpLinkData:
# - showinfo
# - 2
# - 1000134
#
# get_structure_type_from_link(show_info)
# Gets a structure's type from a Yaml "Show Info" link like below:
#
# structureShowInfoData:
# - showinfo
# - 35835
# - *id001
#
# get_system_from_link(show_info)
# Gets a system from a Yaml "Show Info" link (no sample available).
#
# get_character_from_link(show_info)
# Gets a character from a Yaml "Show Info" link (no sample available).
#
# get_pos_wants(wants)
# Formats the "wants" from a POS out of fuel / low on fuel message.
#
# get_citadel_services(modules)
# Formats the list of services from a citadel, used in out of fuel
# messages.
#
# get_corporation(corporation_id)
# Retrieves a corp name from ESI from an ID and then formats display
# with an hyperlink to zKillboard. Includes the same for the alliance
# if the corp as one.
#
# get_alliance(alliance_id)
# Retrieves an alliance name from ESI from an ID and then formats display
# with an hyperlink to zKillboard.
#
# get_system(system_id)
# Retrieves a system name from ESI from an ID and then formats display
# with an hyperlink to Dotlan.
#
# get_character(character_id)
# Retrieves a char name from ESI from an ID if it can be found and then
# formats it as an hyperlink to zKillboard. In case of failure, it will
# default to an "Unknown Character."
#
# get_killmail(killmail_id, killmail_hash)
# Retrieves a full killmail from ESI and then formats for display,
# including an hyperlink to the zKillboard. No check is made to see if
# zKillboard has the ID in its database so the link could go to a 404
# for a valid kill that either hasn't yet been pulled by zKill or
# involves entities that do not have APIs stored in zKill.
#
# get_moon_composition(ore_data)
# Formats a string representation of the ore content included in moon
# mining related Notifications YAML, such as this sample:
#
# oreVolumeByType:
# 45490: 1176484.4156596793
# 45496: 1101576.78784565
# 45502: 1734458.036109956
# 45504: 1657730.84487711
#
[NotificationFormat AllWarDeclaredMsg]
content = War has been declared to {0:get_corporation_or_alliance(againstID)} by {0:get_corporation_or_alliance(declaredByID)}
[NotificationFormat DeclareWar]
content = {0:get_character(charID)} from {0:get_corporation_or_alliance(entityID)} has declared war to {0:get_corporation_or_alliance(defenderID)}
[NotificationFormat WarDeclared]
content = War has been declared against {0:get_corporation_or_alliance(againstID)} by {0:get_corporation_or_alliance(declaredByID)} with War HQ {0:get_string_preserve_bold(warHQ)}
[NotificationFormat AllWarInvalidatedMsg]
content = War against {0:get_corporation_or_alliance(againstID)} has been invalidated by {0:get_corporation_or_alliance(declaredByID)}
[NotificationFormat AllyJoinedWarAggressorMsg]
content = Ally {0:get_corporation_or_alliance(allyID)} joined the war to help {0:get_corporation_or_alliance(defenderID)} starting {0:eve_timestamp_to_date(startTime)}
[NotificationFormat CorpWarDeclaredMsg]
content = War has been declared to {0:get_corporation_or_alliance(againstID)} by {0:get_corporation_or_alliance(declaredByID)}
[NotificationFormat EntosisCaptureStarted]
content = Capturing of "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has started
[NotificationFormat SovCommandNodeEventStarted]
content = Command nodes for "{0:get_campaign_event_type(campaignEventType)}" SOV structure in {0:get_system(solarSystemID)} have decloaked
[NotificationFormat SovStructureDestroyed]
content = SOV structure "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has been destroyed
[NotificationFormat SovStructureReinforced]
content = SOV structure "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has been freeported, exits freeport on "{0:eve_timestamp_to_date(freeportexittime)}"
[NotificationFormat StructureUnderAttack]
content = Citadel (__**{0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}"**__) attacked ({0:get_percentage(shieldPercentage)} shield, {0:get_percentage(armorPercentage)} armor, {0:get_percentage(hullPercentage)} hull) in {0:get_system(solarsystemID)} by {0:get_character(charID)}
[NotificationFormat StructureUnderAttackByBloodRaiders]
content = Citadel (__**{0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}"**__) attacked in {0:get_system(solarsystemID)} by Blood Raiders.
[NotificationFormat StructureUnderAttackByGuristas]
content = Citadel (__**{0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}"**__) attacked in {0:get_system(solarsystemID)} by Guristas.
[NotificationFormat OwnershipTransferred]
content = {0:get_item(structureTypeID)} {0:get_string(structureName)} structure in {0:get_system(solarSystemID)} has been transferred from {0:get_corporation(oldOwnerCorpID)} to {0:get_corporation(newOwnerCorpID)} by {0:get_character(charID)}
[NotificationFormat StructureOnline]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") onlined in {0:get_system(solarsystemID)}
[NotificationFormat StructureDestroyed]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") destroyed in {0:get_system(solarsystemID)} owned by {0:get_corporation_from_link(ownerCorpLinkData)}
[NotificationFormat StructureFuelAlert]
content = Citadel (__**{0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}"**__) running out of fuel in {0:get_system(solarsystemID)}! {0:get_remaining_fuels(listOfTypesAndQty)}
[NotificationFormat StructureWentLowPower]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") went into low power mode in {0:get_system(solarsystemID)}
[NotificationFormat StructureWentHighPower]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") went into high power mode in {0:get_system(solarsystemID)}
[NotificationFormat StructureAnchoring]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") anchored in {0:get_system(solarsystemID)} by {0:get_corporation_from_link(ownerCorpLinkData)}
[NotificationFormat StructureUnanchoring]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") unanchoring in {0:get_system(solarsystemID)} by {0:get_corporation_from_link(ownerCorpLinkData)}
[NotificationFormat StructureServicesOffline]
content = Citadel (__**{0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}"**__) ran out of fuel in {0:get_system(solarsystemID)} with services "{0:get_citadel_services(listOfServiceModuleIDs)}"
[NotificationFormat StructureLostShields]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") lost shields in {0:get_system(solarsystemID)} (comes out of reinforce on "{0:eve_duration_to_date(notification_timestamp, timeLeft)}")
[NotificationFormat StructureLostArmor]
content = Citadel ({0:get_structure_type_from_link(structureShowInfoData)}, "{0:get_structure_name(structureID)}") lost armor in {0:get_system(solarsystemID)} (comes out of reinforce on "{0:eve_duration_to_date(notification_timestamp, timeLeft)}")
[NotificationFormat TowerAlertMsg]
content = {0:get_moon(moonID)} POS "{0:get_item(typeID)}" ({0:get_percentage(shieldValue)} shield, {0:get_percentage(armorValue)} armor, {0:get_percentage(hullValue)} hull) under attack by {0:get_character(aggressorID)}
[NotificationFormat TowerResourceAlertMsg]
content = {0:get_moon(moonID)} POS "{0:get_item(typeID)}" is low on fuel: {0:get_pos_wants(wants)}
[NotificationFormat StationServiceEnabled]
content = Structure "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has been enabled
[NotificationFormat StationServiceDisabled]
content = Structure "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has been disabled
[NotificationFormat OrbitalReinforced]
content = "{0:get_planet(planetID)}" POCO has been reinforced by {0:get_character(aggressorID)} (comes out of reinforce on "{0:eve_timestamp_to_date(reinforceExitTime)}")
[NotificationFormat OrbitalAttacked]
content = "{0:get_planet(planetID)}" POCO ({0:get_percentage(shieldLevel)} shields) has been attacked by {0:get_character(aggressorID)}
[NotificationFormat SovAllClaimAquiredMsg]
content = SOV acquired in {0:get_system(solarSystemID)} by {0:get_corporation(corpID)}
[NotificationFormat SovStationEnteredFreeport]
content = SOV structure "{0:get_item(structureTypeID)}" in {0:get_system(solarSystemID)} has been freeported, exits freeport on "{0:eve_timestamp_to_date(freeportexittime)}"
[NotificationFormat AllAnchoringMsg]
content = New structure ({0:get_item(typeID)}) anchored in "{0:get_moon(moonID)}" by {0:get_corporation(corpID)}
[NotificationFormat InfrastructureHubBillAboutToExpire]
content = IHUB bill to {0:get_corporation(corpID)} for system {0:get_system(solarSystemID)} will expire {0:eve_timestamp_to_date(dueDate)}
[NotificationFormat SovAllClaimLostMsg]
content = SOV lost in {0:get_system(solarSystemID)} by {0:get_corporation(corpID)}
[NotificationFormat SovStructureSelfDestructRequested]
content = Self-destruction of "{0:get_item(structureTypeID)}" SOV structure in {0:get_system(solarSystemID)} has been requested by {0:get_character(charID)}. Structure will self-destruct on "{0:eve_timestamp_to_date(destructTime)}"
[NotificationFormat SovStructureSelfDestructFinished]
content = SOV structure "{0:get_item(structureTypeID)}" has self destructed in {0:get_system(solarSystemID)}
[NotificationFormat StationConquerMsg]
content = Station conquered from {0:get_corporation(oldOwnerID)} by {0:get_corporation(newOwnerID)} in {0:get_system(solarSystemID)}
[NotificationFormat MoonminingExtractionStarted]
content = Moon extraction started by {0:get_character(startedBy)} in {0:get_system(solarSystemID)} ({0:get_moon(moonID)}, "{0:get_string(structureName)}") and will be ready on {0:eve_timestamp_to_date(readyTime)} (or will auto-explode into a belt on {0:eve_timestamp_to_date(autoTime)})
[NotificationFormat MoonminingExtractionCancelled]
content = Moon extraction cancelled by {0:get_character(cancelledBy)} in {0:get_system(solarSystemID)} ({0:get_moon(moonID)}, "{0:get_string(structureName)}")
[NotificationFormat MoonminingExtractionFinished]
#content = Moon extraction has finished and is ready in {0:get_system(solarSystemID)} ({0:get_moon(moonID)}, "{0:get_string(structureName)}") to be exploded into a belt (or will auto-explode into one on {0:eve_timestamp_to_date(autoTime)}) moon composition {0:get_moon_composition(oreVolumeByType)}
embed.0.formatter = FormatString
embed.0.title = Moon Mining Extraction Finished
embed.0.argument = "{0:get_string(structureName)}" is ready to be exploded into a belt (or will auto-explode into one on {0:eve_timestamp_to_date(autoTime)})
embed.1.formatter = FormatString
embed.1.title = Location
embed.1.argument = {0:get_system(solarSystemID)} ({0:get_moon(moonID)})
embed.2.formatter = MineralComposition
embed.2.title = Composition
embed.2.argument = oreVolumeByType
[NotificationFormat MoonminingLaserFired]
content = Moon laser has been fired by {0:get_character(firedBy)} in {0:get_system(solarSystemID)} ({0:get_moon(moonID)}, "{0:get_string(structureName)}") and the belt is ready to be mined
[NotificationFormat MoonminingAutomaticFracture]
content = Moon extraction in {0:get_system(solarSystemID)} ({0:get_moon(moonID)}, "{0:get_string(structureName)}") has autofractured into a belt and is ready to be mined
[NotificationFormat CorpAllBillMsg]
content = Corporation bill issued to {0:get_corporation_or_alliance(debtorID)} by {0:get_corporation_or_alliance(creditorID)} for the amount of {0:get_isk(amount)} at {0:eve_timestamp_to_date(currentDate)}. Bill is due {0:eve_timestamp_to_date(dueDate)}
[NotificationFormat BillPaidCorpAllMsg]
content = Corporation bill for {0:get_isk(amount)} was paid. Bill was due {0:eve_timestamp_to_date(dueDate)}
[NotificationFormat CharAppAcceptMsg]
content = Character {0:get_character(charID)} accepted to corporation {0:get_corporation(corpID)}
[NotificationFormat CorpAppNewMsg]
content = Character {0:get_character(charID)} has applied to corporation {0:get_corporation(corpID)}. Application text:\n\n{0:get_string(applicationText)}
[NotificationFormat CharAppWithdrawMsg]
content = Character {0:get_character(charID)} application to corporation {0:get_corporation(corpID)} has been withdrawn
[NotificationFormat CharLeftCorpMsg]
content = Character {0:get_character(charID)} left corporation {0:get_corporation(corpID)}
[NotificationFormat CorpNewCEOMsg]
content = {0:get_character(newCeoID)} has replaced {0:get_character(oldCeoID)} as the new CEO of {0:get_corporation(corpID)}
[NotificationFormat CorpVoteMsg]
content = New corporation vote for "{0:get_string(subject)}":\n\n{0:get_string(body)}
[NotificationFormat CorpVoteCEORevokedMsg]
content = Corporation "{0:get_corporation(corpID)}" vote for new CEO has been revoked by {0:get_character(charID)}
[NotificationFormat CorpTaxChangeMsg]
content = Tax changed from {0:get_percentage(oldTaxRate)} to {0:get_percentage(newTaxRate)} for {0:get_corporation(corpID)}
[NotificationFormat CorpDividendMsg]
content = Corporation {0:get_corporation(corpID)} has paid out {0:get_isk(payout)} ISK in dividends
[NotificationFormat BountyClaimMsg]
content = A bounty of {0:get_isk(amount)} has been claimed for killing {0:get_character(charID)}
[NotificationFormat KillReportVictim]
content = Died in a(n) {0:get_item(victimShipTypeID)}: {0:get_killmail(killMailID, killMailHash)}
[NotificationFormat KillReportFinalBlow]
content = Got final blow on {0:get_item(victimShipTypeID)}: {0:get_killmail(killMailID, killMailHash)}
[NotificationFormat AllianceCapitalChanged]
content = Alliance capital system of {0:get_alliance(allianceID)} has changed to {0:get_system(solarSystemID)}
[NotificationFormat WarRetractedByConcord]
content = War against {0:get_corporation_or_alliance(againstID)} has been invalidated by CONCORD
[NotificationFormat WarInherited]
content = War declared by {0:get_corporation_or_alliance(declaredByID)} against {0:get_corporation_or_alliance(againstID)} was inherited by {0:get_corporation_or_alliance(quitterID)} as they left {0:get_corporation_or_alliance(allianceID)}.