Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 19.01.2022 во всех областях

  1. 1 балл
    Попробуй event.register(nill, callback, math.huge, math.huge) По идее, первым параметром должно идти имя события, но если поставить nill ловиться будут все события. Callback - функция-слушатель.
  2. 1 балл
  3. 0 баллов
    Предположим, Вы написали крутую программу. И она размазана, скажем на 10 файлов. Или нет, лучше на 50. И Вам захотелось сделать инсталятор. Первая мысль - вручную заливать все файлы на pastebin, потом писать инсталятор, в нём же вручную прописывать коды файлов на pastebin, и их целевые адреса в системе. Это предложение даже читать больно, не то что совершать описанное в нём действие. Но, выход есть. И так, нам понадобятся две вещи: Github аккаунт Хостинг, на котором можно разместить серверную часть. И если с первым всё предельно понятно, то со вторым возникает вопрс: А где его, собственно, взять? Вариантов много. Можно арендовать VPS, поднять сервер на домашнем компьютере или Raspberry Pi, можно воспользоваться услугами таких сайтов как Heroku или PythonAnywhere. Последний вариант примечателен тем, что он полностью бесплатный. И так, какой из сайтов выбрать? PythonAnywhere имеет более ограниченный функционал, по сравнению с Heroku. Но, при этом он намного легче в настройке и эксплуатации, так что остановимся на нём. Далее по пунктам: 1)Заливаем программу на гитхаб. 2)Переходим по ссылке, и создаём токен. Ставим только одну галочку: После создания запоминаем копируем токен, он нам дальше пригодится. Обращаю внимание, что токен нужно держать в секрете. 3) На этом этапе нам нужен хостинг. Я рассмотрю пример с www.pythonanywhere.com . Идём на сайт, регистрируем аккаунт и создаём Flask приложение. В этом нет ничего сложного, если знать английский. Находим файл flask_app.py, и вставляем в него следующее содержимое: from flask import Flask from flask import request import requests import json def request_url(url, result): r = requests.get(url) j = json.loads(r.text) for x in j: if x["type"] == "file": result = result + "\"" + x["path"] + "\"," else: result = request_url(x["url"],result) return result app = Flask(__name__) #@app.route('/',methods=['POST']) def main(): uname = ""# Сюда нужно прописать логин аккаунта Github token = ""# А сюда полученный токен if uname != request.args["owner"]: return "{}" result = request_url("https://"+uname+":"+token+"@api.github.com/repos/"+request.args["owner"]+"/"+request.args["repo"]+"/contents"+request.args["path"]+"?ref="+request.args["ref"],"{") result = result + "}" return result app.add_url_rule("/", "main", main,methods=['GET']) Заполняем поля uname и token, и можно двигаться дальше. 4) На своём компьютере создаём Lua файл, и вставляем в него: local internet = require("internet") local fs = require("filesystem") local shell = require("shell") local ser = require("serialization") local host = ""--Хост, на котором расположена серверная часть local owner = ""--Логин аккаунта Github local repo = ""--Название репозитория local ref = "master"--Название ветки local path = "/"--Путь к папке, из которой скачивать файлы local deploy_to = "/"--Куда скачивать файлы function request(url) local data = "" local result, response = pcall(internet.request, url) if result then local result = pcall(function() for chunk in response do data = data .. chunk end end) end return data end files = ser.unserialize(request("http://"..host.."/?owner="..owner.."&repo="..repo.."&path="..path.."&ref="..ref)) for _,v in pairs(files) do local pth = deploy_to..v if not fs.exists(pth:match(".*/")) then fs.makeDirectory(pth:match(".*/")) end shell.execute("wget -f ".."https://raw.githubusercontent.com/"..owner.."/"..repo.."/"..ref.."/"..v.." "..pth) end Заполняем поля, и готово.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...