-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfuncoes.py
131 lines (104 loc) · 3.63 KB
/
funcoes.py
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
# Importando Bibliotecas
import requests
import pandas as pd
import json
'''
Funções á ser realizadas:
- [X] funções Consumo APIs
- [X] Funções separando primeiros Conteúdos
- [X] Função Limpa Dados
- [X] Função olhar elementos individualmente
- [X] Estudos SQLite3
- [X] Desenhar Banco de dados Biblioteca
- [X] Criar Banco
- [X] Conectar & Testar Banco
- [X] Função Enviar Biblioteca
- [X] Função Excluir livro Blibioteca
- [X] Função Editar livro Biblioteca
- [X] Pesquisar Templates Html
- [X] Estudar Api Google & seus filtros
- [ ] Opções para organizar biblioteca internamente (Genero, nome, status)
Extras:
- [ ] Mostrar semelhantes ao adicionar livro biblioteca
- [ ] API amazon book
link api : https://www.googleapis.com/books/v1/volumes?q={valor_procurado}
'''
def consumir_api(url, busca=''):
url = str(url)
busca = str(busca)
resposta = requests.get(url+busca).json()
return resposta
def head(resposta, qtd_resposta=10):
limpo = resposta['items'][:qtd_resposta]
return limpo
def limpa_requisicao_livro(livro, book_id): # good
# dict_livro = {}
# dict_livro['titulo']
# dict_livro['titulo']
# dict_livro['titulo']
# dict_livro['titulo']
# dict_livro['titulo']
# dict_livro['titulo']
# dict_livro['titulo']
# dict_livro['titulo']
dict_livro = {
'titulo' : livro['title'],
'autores' : '; '.join(livro['authors']),
'descricao' : livro['description'],
'num_paginas' : livro['pageCount'],
'faixa_etaria' : livro['maturityRating'],
'idioma' : livro['language'],
'link' : livro['infoLink'],
'book_id' : book_id
}
## Tratando iSBN
if 'industryIdentifiers' in livro:
for isbns in livro['industryIdentifiers']:
if isbns['type'] == 'ISBN_13':
dict_livro['isbn'] = {'tipo_isbn': isbns['type'], 'valor': isbns['identifier']}
elif isbns['type'] == 'ISBN_10':
dict_livro['isbn'] = {'tipo_isbn': isbns['type'], 'valor': isbns['identifier']}
else:
{'tipo_isbn':None}
else:
{'tipo_isbn':None}
## Tratando iSBN ↑
## Tratando Thumb
if 'imageLinks' in livro:
if 'smallThumbnail' in livro['imageLinks']:
dict_livro['imagem'] = livro['imageLinks']['smallThumbnail']
else:
dict_livro['imagem'] = 'https://raw.githubusercontent.com/kilerhg/TodoBook/main/imagens/livro_sem_capa.png'
else:
dict_livro['imagem'] = 'https://raw.githubusercontent.com/kilerhg/TodoBook/main/imagens/livro_sem_capa.png'
## Tratando Thumb ↑
return dict_livro
def search_book(busca: str):
' MAIN '
url = 'https://www.googleapis.com/books/v1/volumes?q='
dados = consumir_api(url,busca)
dados_limpo = head(dados)
lista_livros = []
for livro_sujo in dados_limpo:
book_id = livro_sujo['id']
livro_limpo = livro_sujo['volumeInfo']
try:
livro_tratado = limpa_requisicao_livro(livro=livro_limpo, book_id=book_id)
except:
livro_tratado = None
if livro_tratado:
lista_livros.append(livro_tratado)
return lista_livros
def get_books_by_id(list_books_id : list):
base_url = 'https://www.googleapis.com/books/v1/volumes/'
list_book_library = []
for book in list_books_id:
link_book = base_url+book
dados = consumir_api(link_book)
try:
dados_limpos = limpa_requisicao_livro(livro=dados['volumeInfo'], book_id=dados['id'])
except:
pass
else:
list_book_library.append(dados_limpos)
return list_book_library