фото из ВК
This commit is contained in:
parent
4493bbab07
commit
86d7a87fe2
|
|
@ -33,8 +33,14 @@
|
|||
<p><input type="file" name="f" id="file-input">
|
||||
<input type="submit" value="Отправить"></p>
|
||||
</form>
|
||||
<div id="result"></div>
|
||||
<div>
|
||||
<div id="upload-image">
|
||||
<div id="upload-image-text"></div>
|
||||
<img id="image" style="max-width: 200px;"/>
|
||||
</div>
|
||||
<div id="result"></div>
|
||||
<div id="result-image" ></div>
|
||||
</div>
|
||||
</body>
|
||||
</section>
|
||||
<script src="static/scripts.js"></script>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ from tensorflow.keras.utils import img_to_array
|
|||
import io
|
||||
import os
|
||||
import json
|
||||
import requests
|
||||
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
|
||||
|
||||
|
||||
|
|
@ -22,10 +23,33 @@ test_model = keras.models.load_model(model_name)
|
|||
dict_names = {}
|
||||
with open("beerds.json", "r") as f:
|
||||
dict_names = json.loads(f.read())
|
||||
for key in dict_names:
|
||||
dict_names[key] = dict_names[key].replace("_", " ")
|
||||
app.static("/", "index.html", name="main")
|
||||
app.static("/static/", "static/", name="static")
|
||||
|
||||
VK_URL = "https://api.vk.com/method/"
|
||||
TOKEN = "vk1.a.2VJFQn9oTIqfpVNcgk7OvxXU8TZPomCH4biRvZEZp8-tQTi8IdKajlXCY5vJbLFjjPGrRWpsM8wbG1mek2pVpktwqi1MGAFJQfQafg68buH7YiE3GtClgWhZNuDUX5PwQuANLRVh6Ao-DcN0Z-72AmWmsIKhf9A4yuE8q3O6Asn_miGvO9gUY_JpctKEVtAYIEhbJtQK7hxW8qpud8J5Vg"
|
||||
headers = {"Authorization": f"Bearer {TOKEN}"}
|
||||
group_id = 220240483
|
||||
postfix = "?v=5.131"
|
||||
IMAGES = {}
|
||||
|
||||
|
||||
def get_images():
|
||||
global IMAGES
|
||||
|
||||
r = requests.get(
|
||||
f"{VK_URL}photos.getAll{postfix}&access_token={TOKEN}&owner_id=-{group_id}&count=200")
|
||||
items = r.json().get("response").get("items")
|
||||
for item in items:
|
||||
for s in item.get("sizes"):
|
||||
if s.get("type") != "x":
|
||||
continue
|
||||
IMAGES[item.get("text")] = s.get("url")
|
||||
break
|
||||
|
||||
get_images()
|
||||
@app.post("/beeds")
|
||||
async def beeds(request):
|
||||
body = request.files.get("f").body
|
||||
|
|
@ -53,11 +77,25 @@ async def beeds(request):
|
|||
if val <= 0.09:
|
||||
continue
|
||||
result_net[val] = dict_names[str(i)]
|
||||
|
||||
items_one = dict(sorted(result.items(), reverse=True))
|
||||
items_two = dict(sorted(result_net.items(), reverse=True))
|
||||
images = []
|
||||
for item in items_one:
|
||||
name = items_one[item].replace("_", " ")
|
||||
if name not in IMAGES:
|
||||
continue
|
||||
images.append({"name": name, "url": IMAGES[name]})
|
||||
for item in items_two:
|
||||
name = items_two[item].replace("_", " ")
|
||||
if name not in IMAGES:
|
||||
continue
|
||||
images.append({"name": name, "url": IMAGES[name]})
|
||||
return json_answer({
|
||||
"results": dict(sorted(result.items(), reverse=True)),
|
||||
"results_net": dict(sorted(result_net.items(), reverse=True)),
|
||||
"results": items_one,
|
||||
"results_net": items_two,
|
||||
"images": images,
|
||||
})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(auto_reload=True, port=4003, host="0.0.0.0")
|
||||
|
|
|
|||
|
|
@ -1,20 +1,30 @@
|
|||
|
||||
let urlCreator = window.URL || window.webkitURL;
|
||||
|
||||
async function SavePhoto()
|
||||
{
|
||||
async function SavePhoto() {
|
||||
document.getElementById("result").innerHTML = "";
|
||||
let photo = document.getElementById("file-input").files[0];
|
||||
let formData = new FormData();
|
||||
|
||||
formData.append("f", photo);
|
||||
let response = await fetch('/beeds', {method: "POST", body: formData});
|
||||
let response = await fetch('/beeds', { method: "POST", body: formData });
|
||||
if (response.ok) {
|
||||
let json = await response.json();
|
||||
let text = ""
|
||||
let textImg = ""
|
||||
let uniqChecker = {}
|
||||
for (let key in json.results_net) {
|
||||
text += "<div>" + json.results_net[key] + ": " + key + "</div>";
|
||||
for (let imgKey in json.images) {
|
||||
if (json.images[imgKey].name != json.results_net[key]) {
|
||||
continue;
|
||||
}
|
||||
if (json.images[imgKey] == undefined) {
|
||||
continue;
|
||||
}
|
||||
textImg += "<img src='" + json.images[imgKey].url + "'/>";
|
||||
break;
|
||||
}
|
||||
uniqChecker[json.results_net[key]] = key;
|
||||
}
|
||||
for (let key in json.results) {
|
||||
|
|
@ -22,8 +32,19 @@ async function SavePhoto()
|
|||
continue
|
||||
}
|
||||
text += "<div>" + json.results[key] + ": " + key + "</div>";
|
||||
for (let imgKey in json.images) {
|
||||
if (json.images[imgKey].name != json.results[key]) {
|
||||
continue;
|
||||
}
|
||||
if (json.images[imgKey] == undefined) {
|
||||
continue;
|
||||
}
|
||||
textImg += "<img src='" + json.images[imgKey].url + "'/>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
document.getElementById("result").innerHTML = text;
|
||||
document.getElementById("result-image").innerHTML = textImg;
|
||||
} else {
|
||||
alert("Ошибка HTTP: " + response.status);
|
||||
}
|
||||
|
|
@ -33,5 +54,6 @@ document.getElementById("file-input").addEventListener("change", function () {
|
|||
let photo = document.getElementById("file-input").files[0];
|
||||
let imageUrl = urlCreator.createObjectURL(photo);
|
||||
document.getElementById("image").src = imageUrl;
|
||||
document.getElementById("upload-image-text").innerHTML = "Ваше изображение:";
|
||||
|
||||
});
|
||||
|
|
@ -2,8 +2,11 @@ import os
|
|||
import time
|
||||
import requests
|
||||
|
||||
# Получить токен чтобы:
|
||||
# https://oauth.vk.com/oauth/authorize?client_id=51534014&display=page&scope=photos,offline&response_type=token&v=5.131&slogin_h=4984535b54c59e09ca.f1e0b6dce0d0cc82e7&__q_hash=618f24fbac4bc34edbf09b8bc503e923
|
||||
|
||||
#TOKEN = "vk1.a.mf4KFdN9gC14SSGDFHVwFRTpzBKBeNxkdlEe0IFlZqU5a5rHH5PwiPn5ekWnDhc94lEI5d2vtXzfxvjXRPapsQZCCt89YUwCIQB1alo06A0Iup9PCWbd6F5GayBn0TS_26N5BTQ1B7deFzi25BV3LKimP9g5ZkeoY0xhNfQ7XawPnBhhK0a2ipL5zZxygYgf"
|
||||
TOKEN = "vk1.a.m92hxDp9fUi06dr424RERKOsika5s5WTNZM64XxTZbU_feIuIRQs72UH_WpeZBr0f_av3V68MvADcNyRSwPMl015aWW0EZjc0d50b8my4_w88BELd1BVT2p9o_7W0YyedfnYGGylyQzfj0jGy2Ufuc3CGFQXJjGJrnINmMSjNps84jhMk0LDqTVFG0a6VlgJ"
|
||||
TOKEN = "vk1.a.2VJFQn9oTIqfpVNcgk7OvxXU8TZPomCH4biRvZEZp8-tQTi8IdKajlXCY5vJbLFjjPGrRWpsM8wbG1mek2pVpktwqi1MGAFJQfQafg68buH7YiE3GtClgWhZNuDUX5PwQuANLRVh6Ao-DcN0Z-72AmWmsIKhf9A4yuE8q3O6Asn_miGvO9gUY_JpctKEVtAYIEhbJtQK7hxW8qpud8J5Vg"
|
||||
VK_URL = "https://api.vk.com/method/"
|
||||
headers = {"Authorization": f"Bearer {TOKEN}"}
|
||||
postfix = "?v=5.131&state=123456"
|
||||
|
|
@ -11,7 +14,24 @@ group_id = 220240483
|
|||
dir = "../assets/dog"
|
||||
list_labels = [fname for fname in os.listdir(dir)]
|
||||
|
||||
r = requests.get(
|
||||
f"{VK_URL}photos.getAll{postfix}&access_token={TOKEN}&owner_id=-{group_id}&count=200")
|
||||
if "error" in r.json():
|
||||
print("error", r.json())
|
||||
exit()
|
||||
items = r.json().get("response").get("items")
|
||||
names = {}
|
||||
for item in items:
|
||||
if item.get("text") in names:
|
||||
print("Doubles: ", item.get("text"))
|
||||
names[item.get("text")] = True
|
||||
for name in list_labels:
|
||||
if name.replace("_", " ") in names:
|
||||
print(f"Continue: {name}")
|
||||
continue
|
||||
if name in names:
|
||||
print(f"Continue: {name}")
|
||||
continue
|
||||
max_size = 0
|
||||
max_index = 0
|
||||
list_data = os.listdir(os.path.join(dir, name))
|
||||
|
|
@ -36,6 +56,11 @@ for name in list_labels:
|
|||
server = r.json().get("server")
|
||||
photos_list = r.json().get("photos_list")
|
||||
hash_data = r.json().get("hash")
|
||||
r = requests.post(f"{VK_URL}photos.save{postfix}", data={"album_id": album_id, "server": server,
|
||||
"photos_list": photos_list, "hash": hash_data, "caption": name.replace("_", " ")}, headers=headers)
|
||||
aid = r.json().get("aid")
|
||||
r = requests.post(f"{VK_URL}photos.save{postfix}&hash={hash_data}", data={"album_id": aid, "server": server,
|
||||
"photos_list": photos_list, "caption": name.replace("_", " "), "group_id": group_id}, headers=headers)
|
||||
if "error" in r.json():
|
||||
print("error", r.json())
|
||||
break
|
||||
print(f"Created: {name}")
|
||||
time.sleep(1)
|
||||
|
|
|
|||
Loading…
Reference in New Issue