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

Лидеры


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

Показан контент с высокой репутацией 19.07.2020 в Сообщения

  1. 3 балла
    Кратко Утилита для командной строки, не хуже чем те же утилиты с https://catbox.moe/tools.php. Загрузка файлов (с диска и по url), удаление, менеджмент альбомов. Все возможности API. Установка Pastebin: https://pastebin.com/kuGkdm53 Для ленивых: # pastebin get kuGkdm53 /usr/bin/catbox.lua Gist: https://gist.github.com/IS2511/e4c6a6f638609fcfa733ceeb432cfced Органический продукт! Разработан полностью на ocelot-desktop! catbox --help Может устареть если я буду обновлять программу! Usage: catbox <command> [arguments] Commands: user [userhash] - Get or set current userhash. Pass 'off' to forget set userhash file <filename(s)> - Upload files to catbox.moe url <url(s)> - Upload files from URLs to catbox.moe delete <filenames(s)> - Delete files from catbox.moe. Requires userhash album - Album Managment ('catbox album' for help) -a, --anonymous - Ignore userhash, upload anonymously -h, --help - Print this message -y, --yes - Yes to everything, skip all checks -q, --quite - Suppress all output (except sys err) and --yes Размышления Изначально писалось с мыслями об удобном хранении файлов и повышении квалификации в использовании component.internet. После написания могу сказать, что удалось только второе. Самый большой минус - отсутствие серверов catbox в России. Пинг 200-250, регулярные тайм-ауты при подключении. К тому же неудобно управлять файлами, это все-таки не менеджер, только реализация API. Для нормально работы скорее всего надо сделать что-нибудь типо веб-папки (Наводит на мысли о следующем проекте ). Кстати, использует недавно написанную мной библиотеку parg. Витают пару мыслей для улучшения либы, но пока ничего конкретного. Буду ли я делать веб-папку на catbox в будущем? Нет, пока некто (https://psychz.net, https://i.imgur.com/kqhCJ02.png) не завезет сервера колокации в Россию. От этого проекта я научился (сильно сказано) работать с component.internet.request() и данными в формате multipart/form-data, отличный опыт. Комментарии и критика приветствуются :з
  2. 1 балл
    OMA-1.7.10-3.2.0.jar v3.2.0 Добавлено: Метод tell для креативного чатбокса.
  3. 1 балл
    Отважно постим мимо Программы новичков Наверняка за такое долгое время развития экосистемы OpenComputers кто-то уже писал свои обработчики аргументов. Я даже видел какую-то на репе hpm (помянем). Для истории: https://gitlab.com/oc-programs/libxargs/raw/master/libxargs.lua Но в основном всех устраивает shell.parse(...). Ну а меня нет. Установка Pastebin: https://pastebin.com/nSgXWHtp Для ленивых: # pastebin get nSgXWHtp /usr/lib/parg.lua На всякий случай: https://gist.github.com/IS2511/96847fe185278b457505218b1c141f9d Органический продукт! Разработан полностью на ocelot-desktop! API parg.parse(a: table): table: Принимает {...}, возвращает таблицу аргументов. Alias: parg(a: table): table. parg.register(argument: string or table, argType: string, callback: function): nil: В argument название аргумента или список названий одного и того же аргумента (Например {"timeout", "t"}). В argType либо "flag", либо "value". В callback функция с 1 аргументом, это будет либо кол-во флагов, либо значение. Последний аргумент необязательный. parg.unregister(argument: string or table, clearSame: boolean): nil: В argument название аргумента или список названий аргументов (Например {"timeout", "verbose"}). Если clearSame = true, то родственные аргументы также будут удалены. Последний аргумент необязательный, по умолчанию false. Я не знаю зачем эта функция, она просто есть. Базовое использование Механика библиотеки схожа c shell.parse. Для быстроты приведу примеры. Программа для тестов будет такая (далее prog.lua): local ser = require("serialization") local parg = require("parg") local arg = parg({...}) -- same as parg.parse({...}) print(ser.serialize(arg)) Попробуем вызвать с набором разных аргументов: /home # prog test1 test2=test3 --test4 --test5=test6 -test7 -89=10 {"test1","test2=test3",[0]="/home/prog.lua",["9"]="10",test5="test6",["8"]=1,["7"]=1,t=2,s=1,e=1,test4=1} Тут в принципе есть все основные варианты аргументов и их поведение. Самые простые аргументы типа "test1" и "test2=test3" далее не будут рассматриваться. Как можно заметить появился также аргумент [0]="/home/prog.lua", это путь к файлу, который вызвал parg(), бывает иногда удобно. Этот аргумент так же далее не будет рассматриваться. (TODO: Есть мысли, что вызов debug.getinfo(3, "S") самый затратный из всей либы. Так ли это?) Регистрация аргуметов Типы В библиотеке есть 2 типа аргументов: "flag" и "value". Первый всегда number, второй всегда string или nil. По умолчанию (без регистрации аргументов) все аргументы считаются "flag", если не используется =, тогда аргумент считается "value". "flag" в значении имеют количество своих появлений. Например prog -xxx => {x=3}. "value" в значении имеют строку со значением, указанным пользователем. Например prog -x=123, prog --x=123 => {x="123"}; prog --test=123 => {test="123"}. Далее переходим к регистрации типов аргументов. Отредактируем prog.lua: local ser = require("serialization") local parg = require("parg") parg.register({"timeout", "t"}, "value") parg.register({"verbose", "v"}, "flag") local arg = parg({...}) print(ser.serialize(arg)) Теперь некоторые аргументы имеют явный тип, а также родственников (Получается "--timeout" = "-t" = "--t"). Поскольку у "timeout" теперь явно тип "value", аргумент может принимать значения через пробел prog -t 10 => {t="10",verbose=0,v=0,timeout="10"}. Обратим внимание! Отсутсвие "flag" дает 0 в таблице аргументов. "verbose" явно "flag", значит любые = больше не сработают prog -v=abc --verbose=def => {v=2,verbose=2}. Каллбэки Последняя фича - каллбэки. Добавим в prog.lua последние штрихи: local ser = require("serialization") local parg = require("parg") local timeout, verbose parg.register({"timeout", "t"}, "value", function (value) timeout = tonumber(value) or 10 end) parg.register({"verbose", "v"}, "flag", function (count) verbose = count > 0 end) parg({...}) print(ser.serialize({timeout,verbose})) Попробуем. prog => {10,false}; prog -t abc => {10,false}; prog -t 20 -v => {20,true}; prog --verbose => {10,true} Ну вот и все, библиотека работает. TODO: Добавить порядок обработки? Взаимосвязанные каллбэки? Конец Остался только один вопрос. Зачем? Почему у меня не используются регулярки? А нужны ли они? На самом деле я просто забыл о них, не знаю есть ли смысл переделывать. Комментарии и критика приветствуются :з Первый пост, критика по оформлению также велком
  4. 1 балл
    Ребят если кому вдруг пригодится, я переписал либу под новый лад, скорость выполнения возросла примерно в 3 раза, не багует подсветку и с более красивым кодом, так же прилагается файлик с редактором под openOS(1.7.5) с использованием этой бибы. включить подсветку по умолчанию ctrl + x. Биба: https://pastebin.com/8HfAynju Редактор: https://pastebin.com/21HhK43T
  5. 1 балл
    Пришло время... Не идеально, конечно, но стало лучше
  6. 1 балл
    Версия для OpenOS: HEL Repository Standalone версия (для хардкорщиков): (еще портируеться...) Системние требования: минимальные Программа представляет из себя простенький монофонический трекер (редактор мелодий) для стандартной пищалки из Opencomputers. Доступно 256 строков и где-то 5 октав (A0 - B6) из за ограниченого диапазона частот динамика (20 - 2000 Гц). Из недостатков могу упомянуть: Нельзя остановить мелодию во время проигрывания. Нельзя изменить темп Максимальная длительность трека - 16 секунд (хотя это можна исправить) Планы на будущее: Замутить мини-библиотеку, чтобы была возможность использовать мелодии в своих программах Начать грызть и изучать звуковые карты из CX и написать более продвинутый трекер Клавиши: Up, Down - навигация по дорожке Left, Right - уменьшить/увеличить октаву Space - Поставить паузу на дорожке Delete - Удалить ноту F1 - Помощь Расположение нот на клавиатуре:
  7. 1 балл
    Я вот тоже когда на Linux перешёл у меня все вирусы перестали работать. Не нашёл способа их запустить.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...