summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-18 05:52:31 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-18 05:52:31 +0000
commitc701c77a295e4c7f523f595679233904cff26331 (patch)
tree3290ff2daf3ac0116be4e6a291ec3e92887c398e
parentfb3feb4b9fa6a7da54f57e02ed23f7d84f8b8e83 (diff)
automatic import of python-lootbotapi
-rw-r--r--.gitignore1
-rw-r--r--python-lootbotapi.spec491
-rw-r--r--sources1
3 files changed, 493 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..bf253dd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/LootBotApi-0.5.9.3.tar.gz
diff --git a/python-lootbotapi.spec b/python-lootbotapi.spec
new file mode 100644
index 0000000..a8a5a90
--- /dev/null
+++ b/python-lootbotapi.spec
@@ -0,0 +1,491 @@
+%global _empty_manifest_terminate_build 0
+Name: python-LootBotApi
+Version: 0.5.9.3
+Release: 1
+Summary: API wrapper for Loot Bot
+License: MIT
+URL: https://github.com/Anatras02/LootBotApi
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/70/39/3ef4ab73ddf52456309ad07b62f720ba904dd9bdda5a141464711240e49b/LootBotApi-0.5.9.3.tar.gz
+BuildArch: noarch
+
+Requires: python3-requests
+Requires: python3-munch
+
+%description
+# LootBotApi
+This is an API wrapper for Loot Bot (https://telegra.ph/Guida-alle-LootBot-API-04-06)
+
+# Installation
+## Download from PyPi
+1. `pip install LootBotApi`
+2. `from LootBotApi import LootBotApi`
+3. `api = LootBotApi(TOKEN)` --> the token can be found using the command /token on https://t.me/lootplusbot
+4. Call the methods from the object created above
+
+
+# Methods
+## Api Wrapper
+Most of this methods will return a list of Munch objects.
+This means that the attributes of the result can either be accessed as dictionary keys or object attributes
+### Items
+* `get_items(rarity = None)` It returns all the items in the game, if rarity is passed it returns all the items of that rarity
+* `get_item(item)` It returns the info about a given item
+``` python
+print(api.get_item("Meccanismo di Ferro").id) #363
+print(api.get_item(363).name) #Meccanismo di Ferro
+```
+### History
+* `get_history(place = "payments",limit = None,offset = None,fromPlayer = None,toPlayer = None,fromItem = None,toItem = None,both = None,fromPrice = None,toPrice = None,orderBy = "desc")` It returns the transactions with the specificied parameters
+
+### Players
+* `get_players()` It returns all the players of LootBot
+* `get_player(player)` It returns the info about the player
+
+### Crafting
+* `get_crafts()` It returns all the crafts in the game
+* `get_craft_needed(item_id)` It returns the items requested to craft the item
+* `get_craft_used(item_id)` It returns the item that you can craft using the item
+``` python
+items = api.get_craft_needed(363)
+for item in items:
+ print(item.name)
+
+#Perno
+#Meccanismo di Legno
+#Ferro
+```
+
+### Shops
+* `get_shop(shop)` It returns the infos about the shop
+
+### Cards
+* `get_cards()` It returns all the cards in the game
+
+### Global
+* `get_global()` It returns the progress of the current global challenge, it's updated every hour
+* `get_info()` It returns infos about the current global challenge
+
+### Team
+* `get_team(team)` it returns the infos about a team
+
+### Ricerche
+* `get_searches(quantity)` It returns the searches made on the bot
+
+## Custom Methods
+These methods are not natively implemented in the API but they are derived by them.
+
+### Crafting
+#### Meaning of inventory
+The inventory paramater excepts a dict structured like this:
+``` python
+{
+ item1: quantity,
+ item2: quantity,
+ .,
+ .,
+ .,
+ itemN: quantity
+}
+```
+
+* `get_total_craft_points(item)` It returns the total craft points that you will get to craft the item
+``` python
+ print(api.get_total_craft_points("Ordigno Polverizzatore")) #113
+```
+* `get_crafting_steps(item,num_elements=1,inventory=dict())` It returns as a list of dicts all the steps to craft a certain element (and in a certain quantity). If the inventory is passed the items already owned will not be listed.
+``` python
+def print_steps(steps):
+ for step in steps:
+ for elemento in step:
+ print(f"Crea {elemento},{step[elemento]}")
+
+steps = api.get_crafting_steps("Scudo Punta Doppia",5)
+print_steps(steps)
+"""
+Crea Scudo Punta Singola,3
+Crea Scudo Punta Singola,2
+Crea Scudo Punta Doppia,3
+Crea Scudo Punta Doppia,2
+"""
+
+inventory = {"Scudo Punta Singola":2}
+steps = api.get_crafting_steps("Scudo Punta Doppia",5,inventory=inventory)
+print_steps(steps)
+"""
+Crea Scudo Punta Singola,3
+Crea Scudo Punta Doppia,3
+Crea Scudo Punta Doppia,2
+"""
+```
+
+* `get_craft_total_needed_base_items(item,num_elements=1,inventory=dict())` It returns a dict containing the name of all the base items needed to craft a certain element (and in a certain quantity). If the inventory is passed the items already owned will not be listed.
+``` python
+print(api.get_craft_total_needed_base_items("Scudo Punta Tripla",2))
+#{'Ambra Nera': 2, 'Materiale Affilante': 2, 'Manico': 2, 'Scaglia di Rubino': 2, 'Metallo': 2, 'Scheggia': 2, 'Nastro Adesivo': 2}
+```
+
+* `get_craft_needed_base(item_id)` It returns a list of base elements needed to craft the item
+``` python
+print(api.get_craft_needed_base(api.get_exact_item("Scudo Punta Tripla").id))
+#[Munch({'id': 80, 'name': 'Ambra Nera', 'rarity': 'UR', 'craftable': 0}), Munch({'id': 127, 'name': 'Materiale Affilante', 'rarity': 'UR', 'craftable': 0})]
+```
+
+### Market
+* `get_average_market_price(item)` It returns the average price of an item in the market as an integer
+``` python
+ print(api.get_average_market_price("Ferro")) #37394
+```
+
+### Items
+* `get_exact_item(item)` It returns the exact item searched
+``` python
+print(api.get_element("Carta"))
+"""
+[Munch({'id': 1, 'name': 'Carta', 'rarity': 'C', 'rarity_name': 'Comuni', 'value': 410, 'max_value': 205000, 'estimate': 2000, 'spread': 46, 'spread_tot': 0.116, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0}), Munch({'id': 8, 'name': 'Carta Stropicciata', 'rarity': 'NC', 'rarity_name': 'Non Comuni', 'value': 810, 'max_value': 405000, 'estimate': 1237, 'spread': 44, 'spread_tot': 0.084, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0}), Munch({'id': 35, 'name': 'Aereo di Carta Piccolo', 'rarity': 'NC', 'rarity_name': 'Non Comuni', 'value': 1121, 'max_value': 1121000, 'estimate': 11750, 'spread': 30, 'spread_tot': 0.001, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0.1}), Munch({'id': 36, 'name': 'Aereo di Carta Grande', 'rarity': 'R', 'rarity_name': 'Rari', 'value': 1697, 'max_value': 1697000, 'estimate': 13045, 'spread': 28, 'spread_tot': 0.001, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 1, 'cons_val': 0.15}), Munch({'id': 37, 'name': 'Caccia di Carta', 'rarity': 'UR', 'rarity_name': 'Ultra Rari', 'value': 3468, 'max_value': 3468000, 'estimate': 4650, 'spread': 25, 'spread_tot': 0, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 3, 'cons_val': 0.25})]
+"""
+
+print(api.get_exact_item("Carta"))
+"""
+Munch({'id': 1, 'name': 'Carta', 'rarity': 'C', 'rarity_name': 'Comuni', 'value': 410, 'max_value': 205000, 'estimate': 2000, 'spread': 46, 'spread_tot': 0.116, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0})
+"""
+```
+
+
+
+
+%package -n python3-LootBotApi
+Summary: API wrapper for Loot Bot
+Provides: python-LootBotApi
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-LootBotApi
+# LootBotApi
+This is an API wrapper for Loot Bot (https://telegra.ph/Guida-alle-LootBot-API-04-06)
+
+# Installation
+## Download from PyPi
+1. `pip install LootBotApi`
+2. `from LootBotApi import LootBotApi`
+3. `api = LootBotApi(TOKEN)` --> the token can be found using the command /token on https://t.me/lootplusbot
+4. Call the methods from the object created above
+
+
+# Methods
+## Api Wrapper
+Most of this methods will return a list of Munch objects.
+This means that the attributes of the result can either be accessed as dictionary keys or object attributes
+### Items
+* `get_items(rarity = None)` It returns all the items in the game, if rarity is passed it returns all the items of that rarity
+* `get_item(item)` It returns the info about a given item
+``` python
+print(api.get_item("Meccanismo di Ferro").id) #363
+print(api.get_item(363).name) #Meccanismo di Ferro
+```
+### History
+* `get_history(place = "payments",limit = None,offset = None,fromPlayer = None,toPlayer = None,fromItem = None,toItem = None,both = None,fromPrice = None,toPrice = None,orderBy = "desc")` It returns the transactions with the specificied parameters
+
+### Players
+* `get_players()` It returns all the players of LootBot
+* `get_player(player)` It returns the info about the player
+
+### Crafting
+* `get_crafts()` It returns all the crafts in the game
+* `get_craft_needed(item_id)` It returns the items requested to craft the item
+* `get_craft_used(item_id)` It returns the item that you can craft using the item
+``` python
+items = api.get_craft_needed(363)
+for item in items:
+ print(item.name)
+
+#Perno
+#Meccanismo di Legno
+#Ferro
+```
+
+### Shops
+* `get_shop(shop)` It returns the infos about the shop
+
+### Cards
+* `get_cards()` It returns all the cards in the game
+
+### Global
+* `get_global()` It returns the progress of the current global challenge, it's updated every hour
+* `get_info()` It returns infos about the current global challenge
+
+### Team
+* `get_team(team)` it returns the infos about a team
+
+### Ricerche
+* `get_searches(quantity)` It returns the searches made on the bot
+
+## Custom Methods
+These methods are not natively implemented in the API but they are derived by them.
+
+### Crafting
+#### Meaning of inventory
+The inventory paramater excepts a dict structured like this:
+``` python
+{
+ item1: quantity,
+ item2: quantity,
+ .,
+ .,
+ .,
+ itemN: quantity
+}
+```
+
+* `get_total_craft_points(item)` It returns the total craft points that you will get to craft the item
+``` python
+ print(api.get_total_craft_points("Ordigno Polverizzatore")) #113
+```
+* `get_crafting_steps(item,num_elements=1,inventory=dict())` It returns as a list of dicts all the steps to craft a certain element (and in a certain quantity). If the inventory is passed the items already owned will not be listed.
+``` python
+def print_steps(steps):
+ for step in steps:
+ for elemento in step:
+ print(f"Crea {elemento},{step[elemento]}")
+
+steps = api.get_crafting_steps("Scudo Punta Doppia",5)
+print_steps(steps)
+"""
+Crea Scudo Punta Singola,3
+Crea Scudo Punta Singola,2
+Crea Scudo Punta Doppia,3
+Crea Scudo Punta Doppia,2
+"""
+
+inventory = {"Scudo Punta Singola":2}
+steps = api.get_crafting_steps("Scudo Punta Doppia",5,inventory=inventory)
+print_steps(steps)
+"""
+Crea Scudo Punta Singola,3
+Crea Scudo Punta Doppia,3
+Crea Scudo Punta Doppia,2
+"""
+```
+
+* `get_craft_total_needed_base_items(item,num_elements=1,inventory=dict())` It returns a dict containing the name of all the base items needed to craft a certain element (and in a certain quantity). If the inventory is passed the items already owned will not be listed.
+``` python
+print(api.get_craft_total_needed_base_items("Scudo Punta Tripla",2))
+#{'Ambra Nera': 2, 'Materiale Affilante': 2, 'Manico': 2, 'Scaglia di Rubino': 2, 'Metallo': 2, 'Scheggia': 2, 'Nastro Adesivo': 2}
+```
+
+* `get_craft_needed_base(item_id)` It returns a list of base elements needed to craft the item
+``` python
+print(api.get_craft_needed_base(api.get_exact_item("Scudo Punta Tripla").id))
+#[Munch({'id': 80, 'name': 'Ambra Nera', 'rarity': 'UR', 'craftable': 0}), Munch({'id': 127, 'name': 'Materiale Affilante', 'rarity': 'UR', 'craftable': 0})]
+```
+
+### Market
+* `get_average_market_price(item)` It returns the average price of an item in the market as an integer
+``` python
+ print(api.get_average_market_price("Ferro")) #37394
+```
+
+### Items
+* `get_exact_item(item)` It returns the exact item searched
+``` python
+print(api.get_element("Carta"))
+"""
+[Munch({'id': 1, 'name': 'Carta', 'rarity': 'C', 'rarity_name': 'Comuni', 'value': 410, 'max_value': 205000, 'estimate': 2000, 'spread': 46, 'spread_tot': 0.116, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0}), Munch({'id': 8, 'name': 'Carta Stropicciata', 'rarity': 'NC', 'rarity_name': 'Non Comuni', 'value': 810, 'max_value': 405000, 'estimate': 1237, 'spread': 44, 'spread_tot': 0.084, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0}), Munch({'id': 35, 'name': 'Aereo di Carta Piccolo', 'rarity': 'NC', 'rarity_name': 'Non Comuni', 'value': 1121, 'max_value': 1121000, 'estimate': 11750, 'spread': 30, 'spread_tot': 0.001, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0.1}), Munch({'id': 36, 'name': 'Aereo di Carta Grande', 'rarity': 'R', 'rarity_name': 'Rari', 'value': 1697, 'max_value': 1697000, 'estimate': 13045, 'spread': 28, 'spread_tot': 0.001, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 1, 'cons_val': 0.15}), Munch({'id': 37, 'name': 'Caccia di Carta', 'rarity': 'UR', 'rarity_name': 'Ultra Rari', 'value': 3468, 'max_value': 3468000, 'estimate': 4650, 'spread': 25, 'spread_tot': 0, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 3, 'cons_val': 0.25})]
+"""
+
+print(api.get_exact_item("Carta"))
+"""
+Munch({'id': 1, 'name': 'Carta', 'rarity': 'C', 'rarity_name': 'Comuni', 'value': 410, 'max_value': 205000, 'estimate': 2000, 'spread': 46, 'spread_tot': 0.116, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0})
+"""
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for LootBotApi
+Provides: python3-LootBotApi-doc
+%description help
+# LootBotApi
+This is an API wrapper for Loot Bot (https://telegra.ph/Guida-alle-LootBot-API-04-06)
+
+# Installation
+## Download from PyPi
+1. `pip install LootBotApi`
+2. `from LootBotApi import LootBotApi`
+3. `api = LootBotApi(TOKEN)` --> the token can be found using the command /token on https://t.me/lootplusbot
+4. Call the methods from the object created above
+
+
+# Methods
+## Api Wrapper
+Most of this methods will return a list of Munch objects.
+This means that the attributes of the result can either be accessed as dictionary keys or object attributes
+### Items
+* `get_items(rarity = None)` It returns all the items in the game, if rarity is passed it returns all the items of that rarity
+* `get_item(item)` It returns the info about a given item
+``` python
+print(api.get_item("Meccanismo di Ferro").id) #363
+print(api.get_item(363).name) #Meccanismo di Ferro
+```
+### History
+* `get_history(place = "payments",limit = None,offset = None,fromPlayer = None,toPlayer = None,fromItem = None,toItem = None,both = None,fromPrice = None,toPrice = None,orderBy = "desc")` It returns the transactions with the specificied parameters
+
+### Players
+* `get_players()` It returns all the players of LootBot
+* `get_player(player)` It returns the info about the player
+
+### Crafting
+* `get_crafts()` It returns all the crafts in the game
+* `get_craft_needed(item_id)` It returns the items requested to craft the item
+* `get_craft_used(item_id)` It returns the item that you can craft using the item
+``` python
+items = api.get_craft_needed(363)
+for item in items:
+ print(item.name)
+
+#Perno
+#Meccanismo di Legno
+#Ferro
+```
+
+### Shops
+* `get_shop(shop)` It returns the infos about the shop
+
+### Cards
+* `get_cards()` It returns all the cards in the game
+
+### Global
+* `get_global()` It returns the progress of the current global challenge, it's updated every hour
+* `get_info()` It returns infos about the current global challenge
+
+### Team
+* `get_team(team)` it returns the infos about a team
+
+### Ricerche
+* `get_searches(quantity)` It returns the searches made on the bot
+
+## Custom Methods
+These methods are not natively implemented in the API but they are derived by them.
+
+### Crafting
+#### Meaning of inventory
+The inventory paramater excepts a dict structured like this:
+``` python
+{
+ item1: quantity,
+ item2: quantity,
+ .,
+ .,
+ .,
+ itemN: quantity
+}
+```
+
+* `get_total_craft_points(item)` It returns the total craft points that you will get to craft the item
+``` python
+ print(api.get_total_craft_points("Ordigno Polverizzatore")) #113
+```
+* `get_crafting_steps(item,num_elements=1,inventory=dict())` It returns as a list of dicts all the steps to craft a certain element (and in a certain quantity). If the inventory is passed the items already owned will not be listed.
+``` python
+def print_steps(steps):
+ for step in steps:
+ for elemento in step:
+ print(f"Crea {elemento},{step[elemento]}")
+
+steps = api.get_crafting_steps("Scudo Punta Doppia",5)
+print_steps(steps)
+"""
+Crea Scudo Punta Singola,3
+Crea Scudo Punta Singola,2
+Crea Scudo Punta Doppia,3
+Crea Scudo Punta Doppia,2
+"""
+
+inventory = {"Scudo Punta Singola":2}
+steps = api.get_crafting_steps("Scudo Punta Doppia",5,inventory=inventory)
+print_steps(steps)
+"""
+Crea Scudo Punta Singola,3
+Crea Scudo Punta Doppia,3
+Crea Scudo Punta Doppia,2
+"""
+```
+
+* `get_craft_total_needed_base_items(item,num_elements=1,inventory=dict())` It returns a dict containing the name of all the base items needed to craft a certain element (and in a certain quantity). If the inventory is passed the items already owned will not be listed.
+``` python
+print(api.get_craft_total_needed_base_items("Scudo Punta Tripla",2))
+#{'Ambra Nera': 2, 'Materiale Affilante': 2, 'Manico': 2, 'Scaglia di Rubino': 2, 'Metallo': 2, 'Scheggia': 2, 'Nastro Adesivo': 2}
+```
+
+* `get_craft_needed_base(item_id)` It returns a list of base elements needed to craft the item
+``` python
+print(api.get_craft_needed_base(api.get_exact_item("Scudo Punta Tripla").id))
+#[Munch({'id': 80, 'name': 'Ambra Nera', 'rarity': 'UR', 'craftable': 0}), Munch({'id': 127, 'name': 'Materiale Affilante', 'rarity': 'UR', 'craftable': 0})]
+```
+
+### Market
+* `get_average_market_price(item)` It returns the average price of an item in the market as an integer
+``` python
+ print(api.get_average_market_price("Ferro")) #37394
+```
+
+### Items
+* `get_exact_item(item)` It returns the exact item searched
+``` python
+print(api.get_element("Carta"))
+"""
+[Munch({'id': 1, 'name': 'Carta', 'rarity': 'C', 'rarity_name': 'Comuni', 'value': 410, 'max_value': 205000, 'estimate': 2000, 'spread': 46, 'spread_tot': 0.116, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0}), Munch({'id': 8, 'name': 'Carta Stropicciata', 'rarity': 'NC', 'rarity_name': 'Non Comuni', 'value': 810, 'max_value': 405000, 'estimate': 1237, 'spread': 44, 'spread_tot': 0.084, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0}), Munch({'id': 35, 'name': 'Aereo di Carta Piccolo', 'rarity': 'NC', 'rarity_name': 'Non Comuni', 'value': 1121, 'max_value': 1121000, 'estimate': 11750, 'spread': 30, 'spread_tot': 0.001, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0.1}), Munch({'id': 36, 'name': 'Aereo di Carta Grande', 'rarity': 'R', 'rarity_name': 'Rari', 'value': 1697, 'max_value': 1697000, 'estimate': 13045, 'spread': 28, 'spread_tot': 0.001, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 1, 'cons_val': 0.15}), Munch({'id': 37, 'name': 'Caccia di Carta', 'rarity': 'UR', 'rarity_name': 'Ultra Rari', 'value': 3468, 'max_value': 3468000, 'estimate': 4650, 'spread': 25, 'spread_tot': 0, 'craftable': 1, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 3, 'cons_val': 0.25})]
+"""
+
+print(api.get_exact_item("Carta"))
+"""
+Munch({'id': 1, 'name': 'Carta', 'rarity': 'C', 'rarity_name': 'Comuni', 'value': 410, 'max_value': 205000, 'estimate': 2000, 'spread': 46, 'spread_tot': 0.116, 'craftable': 0, 'reborn': 1, 'power': 0, 'power_armor': 0, 'power_shield': 0, 'dragon_power': 0, 'critical': 0, 'craft_pnt': 0, 'cons_val': 0})
+"""
+```
+
+
+
+
+%prep
+%autosetup -n LootBotApi-0.5.9.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-LootBotApi -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.9.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..609cbab
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+04e9c35a0f7c1126d0558c7b6cdd65e1 LootBotApi-0.5.9.3.tar.gz