Весь контент Скорбная Лиса
-
Обходы на ПК
Небольшая инструкция по тому, как бесплатно и легко подключить обход всех ограничений на ПК. Подойдет и Windows, и Linux. Часть 1. Клиент. (приложение, которое будет использоваться для подключения) Из всего, что я в последнее время перебирала, лучшим клиентом для добавления подписок, я считаю Throne. Это переделанный nekobox с вшитыми профилями маршрутизации, в которых заранее настроено туннелирование под ру-сегмент. Ссылка на github: https://github.com/throneproj/Throne Справа ищете Realises: Разворачиваете Assets. Пингвиноиды и без меня знают, что им качать. Для окнопоклонников (Windows) выделила прямоугольником универсальный файл установщика: Ура, установка прошла успешно (если вы не бройлер IQ с 7-1000). если бройлер, пишите в личку, помогу) Вот что вы видите: Теперь можно добавить подписку. Правой кнопкой мыши по "Default" Раскроется меню. В нем необходимо выбрать "Добавить новую группу". В открывшемся окне меняем тип со "Стандартный" на "Подписка". Откроется окошко, куда можно добавить URL подписки: !!!!!ВНИМАНИЕ!!!!!! Если берете подписку с github и аналогов вроде gitverse, то надо вставлять ссылку на raw. То есть, не просто URL из браузера копипастнуть, а взять именно RAW-хрень. Нажать на нее, откроется чистый и непорочный html: И вот уже ссылку на raw копируем: Вставляем ее сюда в Throne: Жмем ОК Готово. Подписка добавлена. Она будет видна в списке групп справа от Default Обноволять подписку через Ctrl+U или Правой кнопкой мыши нажать на группу, там откроется менюшка, последний пункт - "Обновить подписку" Часть 2. Эффективное использование Теперь можно пользоваться. Через Ctrl+A выделяем все подключения, доступные в подписке, окроются опции, там есть "Тест задержки выбранного профиля". Жмем. Фильтровать по пропускной способности можно, нажав вот сюда: Чтобы подключить туннелирование, необходимо прожать "Маршрутизация": Откроется меню Надо найти "Скачать профили" и выбрать Bypass Russia (остальные тоже можно скачать, если интересно потестить). Если опять прожать "Маршрутизация" и выбрать профиль Bypass Russia, то ру-сегмент будет спокойно открываться, но при этом и блокировки будут обходиться, что избавляет от бесонечного жонглирования "вкл-выкл впн" Ну, собственно, это все. Задавайте вопросы, пишите, если необходима помощь. Сделаем же интернет доступным, свободным и бесплатным вместе.
-
Вышел финал сериала "The Boys"
Мне финал зашел. Вполне себе логично все и адекватно. Сериал 11/10
-
Не грузятся ссылки aprel.
Необходимо закрыть приложение, очистить кэш приложения, а затем перезагрузить страницу с очисткой кэша. На данный момент эти сервисы не заблоканы в рунете, так что подключение через обходы/впн не требуется
-
Куда сунуть МАХ на телефоне, чтобы твой личный КГБшник не узнал твои грязные секреты
В Китае еще нормально. Там достаточно легко по сравнению с РФ обходить блокировки
-
Куда сунуть МАХ на телефоне, чтобы твой личный КГБшник не узнал твои грязные секреты
Учитывая последние новости про расследование и магическое усовершенствование директив на ТСПУ, из-за которых пришлось обновлять многие методики по генеру обходов, паранойя эта скорее здоровая.
-
Куда сунуть МАХ на телефоне, чтобы твой личный КГБшник не узнал твои грязные секреты
Недавно от очень умного и доброго человека вышла статья на ХАБР, разоблачающая и окончательно доказывающая слежку национального мессенджера за трафиком. Однако, многие граждане РФии ужес столкнулись с настойчивыми рекомендациями, не предполагающими отказа, по установке мессенджера и регистрации в нем. Я, как добропорядочный гражданин, истинный патриот, влила в этот мессенджер все свои данные, протестила все его доступные функции, и вот что порекомендую. Лучше всего, конечно, поставить МАХ на другой телефон и сношать себе мозг. Но не у всех есть такая возможность + с двумя телефонами таскаться неудобно. Есть вариант попроще. Положи мессенджер в изолированное пространство. На Android это сделать очень просто в большинстве случаев. Для пользователей Samsung вообще придумали волшебную вещь под названием "Папка Knox". По сути, это вторая, полностью независимая система, которая никак не связана с основной. В ней можно создавать копии приложений и прятать их от основной системы. Логично, что принцип изоляции работает и наоборот. То есть, что лежит в папке Knox, не имеет доступа ни к фото, ни к особенным настройкам сети основной системы. Короче, положи МАХ в KNOX - и он не будет за тобой следить. Как сделать: в настройках найти Knox, настроить все пароли и доступа к ней добавить в нее МАХ, а лучше вообще все приложухи, связанные с гос.РФ выйти из Knox и удалить из основной системы все эти приложения Для пользователей Xiaomi / POCO / Redmi есть то же самое под названием Second Space. Это такая же изолированная среда с отдельными паролями и т.д. и т.п. Логика та же. Необходимо в настройках эту функцию найти, настроить, перекинуть туда все "следящие" приложения, а затем удалить эти приложения из основной системы. Для Huawei/Honor/Pixel / Android 15+: PrivateSpace Для OnePlus - Hidden Space. Эта функция также изолирует выбранные приложения от системного VPN. 2. На Iphone такого пространства нет. Но можно максимально ограничить МАХ внутри самого IOS: Чтобы приложение не имело доступа к данным (фото, контакты, геолокация, локальная сеть), используйте настройки конфиденциальности: Ограничение доступа к сети (Локальная сеть): Перейдите в Настройки -> Конфиденциальность и безопасность -> Локальная сеть и отключите переключатель для нужного приложения. Это изолирует его от других устройств в вашей Wi-Fi сети. Ограничение доступа к данным: В тех же Настройках -> Конфиденциальность и безопасность проверьте пункты: «Фото», «Контакты», «Геолокация» и запретите приложению доступ к ним. Запрет фоновой активности: Настройки -> Основные -> Обновление контента — отключите для приложения, чтобы оно не работало, когда вы его не используете. Дополнительная информация: в МАХ просто невозможно сделать нормальную фотку "на паспорт". Там используется именно то фото, которое было сделано в госуслугах при прохождении биометрии. Даже красивое лицо будет выглядеть убого. Потому, состройте рожу с учетом всех требований к такому фото, что б хотя бы можно было дико и адски кекнуть при ее просмотре.
-
Запрет. Гайд для бройлеров. Обновленная версия.
Эта инструкция больше написана для новиопов, которые не умеют юзать запрет. На самом деле, этот инструмент достаточно мощный и гибко настраивается. Если тема будет востребована, то сделаю разбор всех файлов и папок, которые в нем есть и покажу, как настраивать доступ к чему угодно и самостоятельно исправлять, если он будет слетать.
-
Запрет. Гайд для бройлеров. Обновленная версия.
Инструкция прописана на случай, если доступ опять снесут. РКН периодически попинывает Олега. Подозреваю, просто не понимают, что делать с ним и его ресурсами. К тому же, что доступно в МСК, не всегда доступно в регионах. О них тоже надо думать хотя бы иногда :D
- ЯМяу
-
Запрет. Гайд для бройлеров. Обновленная версия.
"Запрет - это самая большая свобода" © Мизулина Елена Борисовна Предупреждения: Работает исключительно на сайты, которые были зацензурированы силами РКН. Для получения доступа к сайтам, которые заблокировали забугорные гей-ниггеры из-за того, что не любят Россиюшку, надо пользоваться другими вариантами. Я пишу про исключительно бесплатную антицензуру. Если кто-то не способен купить вэ пэ эн, он не заслужил свободного интернета. Запрет работает только на ПК. В этой части никаких объяснений не будет. Исключительно пошаговая инструкция картиночками и редкими комментариями. Просто делай, как рассказано - показано, и все должно заработать. Преднастройка(ВНИМАНИЕ! ОБНОВЛЕНО!) Зайди в свой браузер. Зайди в настройки браузера. В Chrome: "Конфиденциальность и безопасность" -> Дополнительные настройки -> Использовать безопасный DNS-сервер (ВКЛЮЧИТЬ) -> Выбрать поставщика услуг DNS (из выпадающего списка выбрать либо CloudFlare, либо Google): В Mozilla (FireFox): "Приватность и защита" -> Долистать вниз до "Включить DNS через HTTPS, используя:" -> Отметить "Максимальную защиту" -> Выбрать поставщика (из выпадающего списка выбрать CloudFlare): Часть 1. Как скачать? Качать тут: https://github.com/Flowseal/zapret-discord-youtube Извлечь содержимое zip в отдельную папку. Часть 2. Че это за дичь? Почему так много файлов? Как это теперь запустить? Ничего не трогай, с этого момента читай внимательно. Делай ровно так, как написано, не пропускай шаги. Найди внизу файл service.bat. Запусти. Увидишь консольку с вариантами действий. На данном этапе тебя не ебет абсолютно ничего, кроме трех вещей: СНАЧАЛА НАДО ЗАПУСТИТЬ ТЕСТЫ. Нахуя? Да потому что в разных регионах будут работать разные варианты обхода, т.е. разные конфигурации. Более того, даже если сегодня работает один конфиг, завтра твой провайдер может эту лавочку прикрыть. И надо будет тестировать и искать, какой вариант будет работать сегодня. Видишь последнюю строчку "Select option (0-11)"? Вот тебя просят выбрать, что ты хочешь сделать. А хочешь ты запустить тесты. Так что надо написать 11 без пробелов, точек, скобочек и т.д. а после стукнуть Enter Откроется новое окно. не пугайся. Все так и надо. Тебя снова попросят выбрать. Пиши 1, затем жми Enter Далее будет вопрос, хочешь ты просканировать все конфиги по очереди, либо какие-то отдельные. При первом запуске точно выбирай "All Configs" Пиши 1, жми Enter Тестирование займет несколько минут. В конце будет ответ, какой из 11 конфигов самый быстрый и рабочий для твоего региона. Судя по ответу, самый крутой конфиг 3-й. Жми любую клавишу, окно закроется. Останется это, опять нажми любую клавишу, чтобы вернуться в "меню с действиями". ЧАСТЬ 3. Запуск Пиши 1, жми Enter. Появится список всех существующих вариантов обхода (конфигураций). Тесты определили, что лучший конфиг 3-й, потому его и выбирай. Пиши 3 - Жми Enter Конфиг запустится, ничего не трогай, пока не появится внизу вот такая штука: ПОДКЛЮЧЕНИЕ РЕСУРСОВ АПРЕЛЯ Недавно ресурсы апреля были прощены и возвращены народу РФ. Однако, как долго это вообще продлится, никто сказать не сможет. Если после включения запрета gokino.su и aprelteam.su все еще не работают, можно немного поколдовать. Ищем папку "lists" Внутри нее файл list-general.txt Листаем до конца и дописываем домены апреля: list-general.txt ... aprelteam.su gokino.su Сохранить - закрыть Теперь надо снова запустить запрет. То есть, запустить Install Service - выбрать 3-й вариант обхода, дождаться ответа, что все ок. Теперь ресурсы должны заработать. В целом, таким образом можно обходить любые ограничения, которые были наложены со стороны РКН. Достаточно просто прописать все домены, к которым нужен доступ. ЕСЛИ ВСЕ ПЕРЕТЫКАЛ УЖЕ И ВСЕ РАВНО НИЧЕГО НЕ РАБОТАЕТ Подожди немного. Некоторым конфигам нужно время, что б врезаться в сеть. Это обусловлено самой механикой обхода DPI. Технология работает не мгновенно, не как vpn. Она маскирует трафик и пакеты. Можешь перезагрузить браузер, попить чаек, постучать в бубен. Через 5 минут все заработает. Если все равно нет, проверь обновления запрета. Ну, я думаю, уже понятно, что надо напечатать 9 и прожать Enter. Если действительно надо обновиться, тебе будет предложено перейти на github. Там чуть ниже найдешь zip и rar файлики с обнолвенным пофикшенным запретом. ОБНОВЛЕНИЕ ФАЙЛА HOSTS ДЛЯ ВКЛЮЧЕНИЯ РАБОТЫ ТЕЛЕГРАММ НА ЗАПРЕТЕ Файл hosts — это системный текстовый документ без расширения, который содержит базу данных доменных имен и их IP-адресов. Когда вы вводите адрес сайта в браузере, компьютер сначала заглядывает в этот файл, и только потом обращается к глобальным DNS-серверам. Умные ребята из zapret-комьюнити составили файл со списком хостов, которые надо внести в этот файл, что б zapret заработал. откроется блокнот со списком хостов. их все надо скопировать (Ctrl+A -> Ctrl+C) потом надо открыть блокнот от имени администратора. НЕ ТОТ ФАЙЛ, КОТОРЫЙ АВТОМАТИЧЕСКИ ОТКРЫЛСЯ ЗАПРЕТОМ СО СПИСКО ХОСТОВ, А ИМЕННО САМ БЛОКНОТ ОТКРЫТЬ ОТ ИМЕНИ АДМИНИСТРАТОРА В ОТКРЫВШИЙСЯ ПУСТОЙ ФАЙЛ вставляем список хостов, которые скопировали ранее. Далее "Файл -> Сохранить как..." Путь для сохранения: C:\Windows\System32\drivers\etc после того как поменять "Текстовые документы" на "все файлы", появится список файлов без расширений, в числе которых будет "hosts". Жмем на него и сохраняем, соглашаясь со всем, что пишут. Проверяем, что все выглядит именно так, как надо: Все, теперь hosts свежий. Можно включать zapret. Телега летает.
- Aprel Mods и все остальные каналы, чаты, боты Aprel Team заблокировали в Telegram!
-
Пара строк про китайский язык в моей жизни...
На самом деле, это нереально весело. Я каждый раз то забиваю, то отдохну - и продолжаю снова. Китайский может немножко утомлять, но это не повод его бросать 🥰
-
Помогите освоиться
Добро пожаловать! Общую информацию можешь посмотреть тут Если что-то заинтересует и появятся вопросы, то можешь их задать на форуме в любую связанную с заинтересовавшим разделом тему, либо писать в чаты. Заранее советую ознакомиться с правилами чатов и правилами публикаций на форуме.
-
Пара строк про китайский язык в моей жизни...
Вы ждали? Нет? Но вы дождались! Очередная шизо-статья про то, о чем вы, скорее всего, вряд ли думали дольше пяти минут, а теперь имеете возможность почитать. Года два назад моя дисперсия стала уж совсем мрачной и печальной. Все легальные виды яда уже не могли спасти от бесконечного мрачного отчаяния, которое медленно, но верно поглощало мою душу, тело и мозг. Но луч света в конце темного туннеля забрезжил как раз тогда, когда выход через окно стал выглядеть совсем уж притягательно. Я открыла для себя китайскую литературу. Это было нечто совсем новое, свежее и незнакомое. В то время как мораль и совесть в западных фильмах и сериалах активно загнивали, низводя все человеческие отношения до уровня беспорядочной половой *бли, пока Голливуд плодил афроамериканских русалочек, афроамериканских средневековых королей, выпускал картины про насилие, ЛГБТ (Запрещенная на территории РФ организация) и АБВГД, рассказывал, как продавать запрещенные вещества, которыми бесконтрольно упарываются малолетки…я для себя открыла жанр сянся(китайское фентези). Там длинноволосые богоподобные мужики непревзойденной красоты летают на мечах, кидаются разенганами, самосовершенствуют душу, тело и ум, чтобы воспарить на уровень Богов, что выше царства людей. В некоторых из этих историй, пусть и была сомнительного содержания романтика, но больше всего там было невероятно интересно прописанных персонажей, политических игр, философии, магии на основе даосских учений, человеческой драмы, что не высосана из пальца, а совершенно искренне вызывает глубокие неподдельные эмоции и пр., пр. И все это на фоне распития чаев, гор, солнца под звуки флейт и гуциня. Короче, жизнь разделилась на «до» и «после». Чем глубже я погружалась в китайскую культуру через литературу, тем скорее стало ясно, что большая часть бриллиантов и шедевров просто не переводится в ру-сегменте из-за отсутствия переводчиков. И я поняла, что хочу знать этот язык, хочу поглотить эту культуру полностью. Так я записалась на курсы по китайскому языку – и понеслась. Естественно, причины изучить язык не ограничились тем, что я просто хочу потреблять еще больше контента про мужиков на мечах в халатах. Сегодня Китай развивается в сторону нового мирового гегемона, который имеет все шансы заменить Великопендосию, а потому язык этот будет полезно знать хотя бы просто на начальном уровне. РФ с Китаем постоянно активно сотрудничает в сфере торговли, энергетики, технологий, туризма и науки. Вот последнее как раз меня также заинтересовало, поскольку в моем университете китайцы отстроили целую кафедру по изучению и разработке квантовых сетей и всего, что с ними связано. По прошлым статьям понятно, что я очень неравнодушна к квантовому шифрованию и вообще к будущему квантовых технологий. Да и в целом необходимость смены обстановки в будущем заставляла меня постоянно задаваться вопросами о том, в какую страну ливнуть поработать пару лет. И на запад ехать отчаянно не хотелось, потому как в той стороне меня не привлекает буквально ничего. Ближний Восток тоже не интересен. Но, как оказалось, крайне интересен дальний. А ехать работать и жить в другую страну на длительный срок без знания языка – моветон. Сначала, конечно, все эти иероглифы и особенности речи воспринимались как нечто крайне тяжелое и непотребляемое. Но пару уроков спустя в голове сложилась система, по которой необходимо учить и понимать этот язык. И я в нее влюбилась. В своей жизни я учила английский, немецкий и даже пыталась обучиться французскому, но такого искреннего удовольствия от обычного процесса освоения каких-то новых элементов грамматики/письменности/произношения, не было. Может показаться, что все это мое отношение лишь первоначальный восторг, который скоро пойдет на спад. Но я действительно увлекаюсь этой идеей уже два года. И чем глубже погружаюсь в вайбы этой страны, тем сильнее влюбляюсь во все, что с ней связано. Итак, наверное, закончу на этом разговорную часть и распишу немного базы про китайский язык. Произношение В китайском языке (в частности, в путунхуа — стандартном мандаринском диалекте) существует четыре основных тона, а также нейтральный (лёгкий) тон. Тон — это изменение высоты голоса при произнесении слога, и он меняет значение слова, даже если звуки одинаковые. 1-й тон — высокий ровный (высокий уровеньный) Обозначение: Макрон (ˉ), например: mā Высота: Высокая и ровная (около 5 по шкале 1–5, где 1 — низкий, 5 — высокий). Интонация: Голос держится на одном высоком уровне, без подъёма или спада. Пример: 妈妈 (māmā) — «мама» 2-й тон — восходящий (восходяще-нисходящий) Обозначение: Акут (ˊ), например: má Высота: Начинается со среднего уровня (~3) и поднимается до высокого (~5). Интонация: Похоже на вопрос в английском: «Huh?» Пример: 麻 (má) — «конопля» или «онемевший» 3-й тон — нисходяще-восходящий (изогнутый) Обозначение: Карон или гачек (ˇ), например: mǎ Высота: Сначала опускается (~2), затем поднимается (~4). Особенность: В быстрой речи часто упрощается до низкого ровного тона (особенно перед другим 3-м тоном). Аналогия: Как будто говоришь утвердительное «ага» в русском . Пример: 马 (mǎ) — «лошадь» 4-й тон — нисходящий (резкий, падающий) Обозначение: Гравис (ˋ), например: mà Высота: Начинается высоко (~5) и резко падает до самого низа (~1). Интонация: Похоже на резкий приказ: «Stop!» Пример: 骂 (mà) — «ругать, бранить» Нейтральный тон (лёгкий тон) Не имеет собственного знака тона. Произносится коротко, слабо и без чёткой тональной кривой. Тон критически важен: mā, má, mǎ, mà — это четыре разных слова. Именно такой стандарт произношения был официально введён в КНР в 1958 году и с тех пор стал неотъемлемой частью изучения и использования китайского языка по всему миру. И называется он «пиньинь». Пиньинь (по-китайски: 拼音, pīnyīn, что означает «складывать звуки») — это официальная система транскрипции китайского языка, которая использует латинский алфавит для записи произношения китайских слов (в стандарте путунхуа — мандаринского диалекта). В пиньине, например, слово rén будет произноситься вовсе не как «рен», а как «жэн». У китайцев в целом нет звука «р». Ни в каком виде. Даже в кастрированном, как на западе, звучании. Письменность Вот тут все еще веселее, чем в произношении. Многие меня спрашивают, есть ли в китайском языке алфавит. О, нет, там не алфавит. Там все куда как круче. Это целый конструктор из отдельных деталей (ключей и черт), которые могут являться как отдельным иероглифом (один иероглиф=один слог), так и встречаться в составе более сложного иероглифа. Говорить об этом можно бесконечно, но приведу простой пример на Xiaomi. 小 – xiǎo обозначает «маленький». Это весьма простой иероглиф и состоит он из нескольких черт: крюка (посередине), откидной черты влево и откидной вправо (соответственно, слева и справа). Его можно просто запомнить. Но xiǎo – это не только иероглиф, это еще и, так называемый, ключ. Ключ - это семантический или структурный компонент иероглифа, который часто указывает на общую тематику, значение или категорию этого иероглифа. Ключи используются как для понимания смысла иероглифов, так и для их упорядочивания в словарях. То есть, если вы хотели узнать, как они там словари составляют, то именно так. По ключам. И ключей этих ох как немало, но запоминаются, если постоянно с ними работать, легко. Например, есть ключ 木 (mù). Он обозначает «дерево» , и он есть в иероглифах, обозначающих растения или деревянные предметы 林 (lín — роща(лес)), 桌 (zhuō — стол), 桥 (qiáo — мост) И вот мы переходим ко второму иероглифу в названии всеми любимой нами компании: 米(mǐ) переводится как «рис» и, если присмотреться, то можно увидеть, что он состоит из ключа 木(mù) и двух веселых черточек сверху. Ну вот, собственно, думаю, на сегодня можно пока что закончить небольшую вводную в китайский. Надеюсь, всем, кто умудрился дочитать, было интересно
-
Обзор моделей ИИ
Здорова, решила выкатить небольшой халтурный обзорчик на модели ИИ, тремя из которых сама регулярно пользуюсь. Честно, если б не великая математика, которая подарила нам AI-шки, я бы сдохла с голода и ненависти к себе и своей неспособности обрабатывать необходимое количество информации. В моей памяти еще свежи времена, когда надо было гулять по форумам с 20-х страниц гугла дабы узнать, почему команда source ~/.bashrc выдает какую-то срань вместо того что б нормально отработать. В ответ получать "пнх, рачелло, иди делай уроки" или советы ввести sudo rm -rf , что б все заработало (твари, ненавижу вас, надеюсь, эти калопотребители все еще сисадмины в ООО "Подзалупзавод"). Сегодня же можно наехать на чат-гопоту с вопросом "ты че мне прислал, шерсть? почему не работает" и получить тысячи извинений и подробное разъяснение разницы между bash и zshrc. Благодаря AI я автоматизировала себе почти все в жизни, реализовала кучу идиотских, но при этом забавных проектов буквально за пару дней, написала диплом, множество курсовых и статей. Естественно, при работе с AI необходимо понимание предмета, ибо ошибок там море и не всегда эта дура может додуматься, в чем именно ошибка. Прискорбно, но мозги все еще приходится включать. Но все же масштабы рутинного говна, которое AI взяли на себя, переоценить невозможно. Ниже перечислю самые популярные модельки, которые используются сегодня в работе не только мной, но и многими разрабами, сисадминами, дизайнерами, музыкантами, писателями: всеми, короче. Наслаждайтес. ChatGPT (OpenAI) Разработчик: OpenAI Модели: GPT-3.5, GPT-4, GPT-4 Turbo Особенности: Одна из самых известных и мощных языковых моделей (LLM). Отличная работа с естественным языком, генерация текста, кода, диалогов. Поддержка множества языков, включая русский. Интеграция с API, плагинами, ботами, DALL·E для генерации изображений. Доступен через ChatGPT (бесплатная и платная версии). Плюсы: Высокое качество ответов, богатая экосистема, активное развитие. Минусы: Ограничен доступ к GPT-4 без подписки; данные могут использоваться для обучения. Для себя выделила, что очень сильно заколебалась врубать vpn и платить. Адекватные люди покупают аккаунт и делят его со знакомыми/друзьями, но той херней, которую я скрамливаю временами ИИ, я делиться не готова ни с кем, кроме своей совести. Безусловно, на сегодняшний день чат-гопота - лучшая на рынке, но геморрой, сопутствующий блокировкам, необходимостью вливать немало бабок, растет не по дням, а по часам, потому невольно начинаешь засматриваться на весьма и весьма перспективных китайцев. DeepSeek Разработчик: DeepSeek AI (Китай) Модели: DeepSeek 1, DeepSeek 2, DeepSeek Chat Особенности: Мощные открытые (open-weight) модели, конкурирующие с Llama и GPT. Хорошо оптимизированы под эффективность и скорость. Поддержка длинных контекстов (до 128K токенов). Бесплатны для исследовательского и коммерческого использования. Плюсы: Открытый исходный код, высокая производительность, поддержка длинных диалогов. Минусы: Меньше интеграций, чем у OpenAI; пока менее известен в западном сегменте. Минусы, на самом деле, вообще не заканчиваются на меншем количестве интеграций и низкой популярности. Иногда это чудо может прислать ответ полностью на китайском языке, так еще и полностью поменять обсуждаемую тему. Просишь его исправить 2 строки, а оно переписывает код с нуля, так еще и так, что оно в принципе работать перестает. Впрочем, чат-гопота тоже частенько этим грешит. Уровень ярости, который исптываешь, когда понимаешь, что две строки придется вбить РУКАМИ, описанию не поддается. Qwen (Tongyi Qianwen) Разработчик: Alibaba Cloud Модели: Qwen-1, Qwen-1.5, Qwen-2, Qwen-Max, Qwen-VL (мультимодальная), Qwen-Audio Особенности: Семейство моделей с открытым исходным кодом. Поддержка до 32768 токенов контекста. Мультимодальность (текст + изображение). Хорошо работает с китайским и английским, частично — с другими языками. Интеграция с экосистемой Alibaba. Плюсы: Открытые модели, масштабируемость, мультимодальность. Минусы: Пока не так популярен за пределами Китая; локализация на русском — средняя. Эту AI открыла для себя совсем недавно по совету коллеги. И пока что нахожусь в восторге. Данная AI весьма неплохо работает с кодом и понимает, чего ты от нее хочешь, пока что даже лучше, чем чат-гопота. Пару дней мучила Квена без остановки и даже пополнила свое гитхаб-портфолио двумя новыми ботами. На следующей неделе буду тестировать, насколько он хорош в веб-разработке. Ну и, конечно, оставшийся зоопарк: Модель Разработчик Особенности Llama / Llama3 Meta (Facebook) Открытые модели, популярны в open-source Gemini Google Бывший Bard, мультимодальный, интеграция с Google Claude 3 Anthropic Длинный контекст, безопасность, высокое качество Mistral / Mixtral Mistral AI (Франция) Эффективные open-weight модели Ernie Bot Baidu Сильна в китайском языке YandexGPT Яндекс Российская LLM, интеграция с продуктами Яндекса Cohere Cohere Фокус на бизнес-решения Falcon TII (ОАЭ) Одни из самых мощных открытых моделей Из всего вышеперечисленного трогала только AI от гугла и яндекса. Полное говнище У них все еще есть точки роста Вывод простой. Все больше компаний активно занимаются разработкой AI и активно внедряют их в бизнес-процессы. Люди, на самом деле, и не заметили, насколько сильно изменился мир буквально за пару лет популяризации моделей машинного обучения и внедрения их в абсолютно каждую область, которая хотя бы косвенно связана с ИТ, автоматизацией и т.д. Уже сегодня сложно представить работу и жизнь без ИИ. Малолетние одинокие девочки даже заводят отношения с AI-персонажами из своих любимых книг, сериалов и аниме. Так что тем, кто все еще не научился писать промты (читай: четко формулировать запрос, ясно представляя конечный результат, который ожидается на выходе), советую поскорее освоить сей навык.
-
ПРОХОЖДЕНИЕ ЛЕГКОЙ МАШИНЫ В HACK THE BOX
Итак, сегодня я расскажу немного про то, чем занять томный вечер, если все вокруго настопиз надоело На просторах интернета существуют замечательные и веселые платформы, позволящие осваивать самые разные навыки. Наверное, многие, кто меня тут знают в курсе, но я сильно угораю по пентесту. А потому решила подвезти немного контента про то, как просто и легально можно учиться и проверять свою способность что-нибудь поломать. Самой популярной площадкой для обучения и тренировки пентестеров является HackTheBox, также известная как HTB. На самом деле, поломанные машины оттуда даже смотрят на ссобеседованиях. Орагнизовано все таким образом, что ты залетаешь за сайт hackthebox.com, заходишь в специальный раздел и выбираешь, какую машину попытаешься взломать. Машины - это заранее уязвимые виртуальные машины, для подключения к которым надо подключиться к сети HTB с помощью конфига .ovpn. Взлом считается засчитаным, если найти все требуемые "флаги" (Флаг - это набор символом в 16-ричном формате, который можно найти на уязвимых VM. Они находятся либо на сайте, либо в текстовых файлах, но доступны всегда только после эксплуатации тех уязвимостей, которые заложены в VM). Также каждая VM делится по "рангу". Легкие - для новичков, Сложные - для опытных ломакеров. Думаю. что краткого вступления достаточно. Ниже описание того, как можно проходить такие машины. Подобные уязвимости встречаются или встречались когда-то в реальной жизни. Я брала легкую машину, такая дыра в безопасности очень вряд ли встретится в реальных условиях, однако, в любом случае полезно как минимум поучиться пользоваться утилитами повышения привилегий, сканирования сетей и пр. Итак, когда доступ к "жертве" получен, можно начинать. Начинаем с разведки Сканируем порты простой командой в специальной утилите nmap: Видим, что открыты три порта. 22-й порт используется для удаленного подключения по ssh, 21-й – для удаленного доступа к файловой системе по протоколу ftp, а на 80-м порту, скорее всего развернуто какое-то веб-приложений. В поисковой строке вбиваем ip-адрес target машины и действительно, попадаем в какой -то веб-интерфейс: Исследуем веб-панель и находим пункт Security Snapshot, на котором, вероятно, можно найти что-то полезное. В поисковой строке отображается id снапшота. Можно попробовать его поменять на 1 или 0. Смена id показывает самый первый снапшот, в котором есть какие-то данные, а также возможность скачать файл. Загружаем .pcap файл, который можно открыть с помощью сетевой утилиты wireshark, которая используется для анализа трафика. В файле трафик не зашифрован Путем нехитрого анализа находим логин и пароль пользователя Nathan. Пробуем получить с ними доступ по ssh: Получилось войти в консоль target-машины, а также заполучить первый флаг, обнаружив в файловой системе user.txt Чтобы получить второй флаг, скорее всего, необходимо повысить привилегии до суперпользователя. Для этого необходимо загрузить утилиту linpeas.sh, которая используется для обнаружения уязвимостей в ОС семейства Linux. Чтобы передать linpeas.sh на target-машину можно использовать либо протокол ftp, либо запустить сервер на атакующей VM: python3 -m http.server 8000 Смотрим ip атакующей машины. Нас интересует интерфейс tun0: ip a Теперь можно передать linpeas.sh на target-машину: Теперь можно запустить утилиту, предварительно дав разрешение на выполнение: nathan@cap:~$ chmod +x linpeas.sh nathan@cap:~$ ./linpeas.sh В Readme утилиты указано, что строки с оранжевым фоном наиболее интересны, а потому не тратим время на анализ остальных результатов и сразу ищем именно их: Оп-пааа, чиназес: Найденная уязвимость говорит о том, что есть возможность менять UID, не являясь суперпользователем. И таким образом как раз повысить привилегии и стать суперпользователем, поменяв UID на 0. Делаем это командой: /usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")' Теперь можем получить второй флаг: cat /root/root.txt Рекомендации по исправлению: Лучше всего никогда не давать capabilities бинарникам, которым это не нужно. Проверить, есть ли сейчас эта уязвимость: getcap -r / 2>/dev/null если есть, удалить: sudo setcap -r /usr/bin/python3.8 Вместо capabilities лучше использовать sudoers с нужными ограничениями. Также на машине есть еще несколько очевидных проблем: Анонимный или легко подбираемый доступ через FTP. Необходимо отключить анонимный доступ в /etc/vsftpd.conf Также Файлы .pcap с credentials хранятся в открытом виде. Такие файлы в принципе нельзя хранить в веб-директориях. Также необходимо шифровать трафик, использовать https протоколы.
-
Поиск смартфона в локальной сети
P.S. еще в качестве улучшения можно добавить автозапуск скрипта при включении телефона.
-
Поиск смартфона в локальной сети
Давненько я не царапала ничего в свой блог. В последнее время как-то много всего навалилось. Магистратура душит, работы много, поездки всякие, к экзамену по китайскому надо готовиться. Тем не менее, написать все же чего-нибудь хочется, потому сегодня принесу вам простой кусочек кода, который поможет найти телефон в локальной сети. У меня часто происходит такая ситуация, что выходить надо было десять минут назад, а я бегаю по всей квартире, как ошпаренная в попытках вспомнить, куда засунула телефон в очередной раз. Сегодня эта проблема по-хорошему решена яндекс.станцией с ее невероятной функцией, которая по запросу “Алиса, найди телефон” просто прозванивает его. А еще эта функция есть на многих умных часах. Но яндекс станция есть не у всех. А часы для поиска требуют постоянного bluetooth-соединения, что лично мне как раз и мешает искать смартфон по-человечески. Потому я придумала штуку. Можно запустить питон-скрипт на телефоне, сделав его сервером и, окончательно впав в отчаяние, прозвонить его с компа. Вот, собсвтенно, код: import os from flask import Flask app = Flask(__name__) # Функция для воспроизведения звука через VLC def play_sound_with_vlc(): # Замените на путь к вашему звуковому файлу os.system('vlc --intf dummy --play-and-exit ringtone.mp3') @app.route('/ring') def ring(): # Воспроизведение звука через VLC play_sound_with_vlc() return "Ringing!" @app.route('/stop') def stop(): # Остановка VLC (если это необходимо) os.system('pkill vlc') return "Stopped!" if __name__ == '__main__': app.run(host='0.0.0.0', port=2721) Теперь подробнее: При переходе по адресу http://<IP-устройства>:2721/ring: Termux начнёт проигрывать ringtone.mp3. Вернётся ответ: "Ringing!". При переходе по http://<IP-устройства>:2721/stop: Termux остановит воспроизведение. Вернётся ответ: "Stopped!" Звонок пройдет даже если телефон на беззвучном. Важные условия запуска: 1. Работает только на Android с Termux. termux-media-player – часть Termux API, поэтому код не сработает на ПК или iOS. 2. Termux должен иметь доступ к мультимедиа. Разрешение даётся командой termux-setup-storage 3. ringtone.mp3 должен лежать в той же папке, что и скрипт 4. Не добавляла проверку ошибок. Если плеер или файл недоступен – сервер "упадёт" (т.е. у вас должен быть установлен vlc, а звук лежать в той же папке, что и скрипт). Как выглядит запуск в браузере: Возможные улучшения Поскольку вся работа реализуется через http GET-запрос, его можно воткнуть буквально куда угодно. Я написала небольшое apk-приложени с одной кнопкой, что б останавливать музыку, когда телефон найден (в кнопку запихнула http://<IP-устройства>:2721/stop) Также начала разрабатывать голосового помощника, который бы запускал поиск телефона по голосовому запросу, как Алиса. Реализовать получилось, но криво. Из-за слабых мощей компьютера обработка речи происходит не так быстро, как хотелось бы. Плюс, столкнулась с проблемой поиска подходящих речевых моделей как таковых, распознавание удается, но с раза третьего-четвертого. В силу плотной занятости кейс с голосовым помощником был отложен на неопределенный срок. Есть идея сделать прям физическую кнопку на стене, которая бы замыкала контакты на условной esp, а она бы уже кидала GET-запрос на поиск телефона...это смешно, кринжово, но тоже в какой-то степени можно считать за решение. В общем, сделать можно что угодно. Если б еще не было так лениво...
-
Снос, взлом и извлечение информации с телеграм-аккаунтов, использующих Ayugram
Мне кажется, что это выглядит как реклама услуг, противоречащих УК РФ и РБ)
-
Я НАПИСАЛА КУРСОВУЮ ПО PWNAGOTCHI И ВОТ ЧТО ПОНЯЛА
Ну что, мальчики и девочки, давненько я не щитпостила в свой блог, пора исправить это досадное недоразумение. Ранее я уже поверхностно рассказывала про pwnagotchi – проект, которым был вдохновлен небезызвестный FlipperZero. Спустя несколько месяцев мне удалось познакомиться с ним поближе, мерзко обесчестить опенсурсный ai и более глубоко разобраться в механиках работы алгоритмов обучения с подкреплением. Во-первых, ChatGPT нагло соврал, когда сообщил, что pwnagotchi работает на Q-Learning. Он может, но не по умолчанию. По умолчанию он юзает алгоритм A2C. Во-вторых, обучать модель все же куда как легче и быстрее на рандомно генерируемых данных, т.к. в реальных условиях получение данных извне может быть связано с множеством ограничений, включая недостаток доступных Wi-Fi сетей, ограниченные возможности оборудования, длительное время сбора, закон 🙄🥱. Генерировать необходимо состояния агента, включая: - число деаутов (deauth, deauthentication) отправленных агентом за эпоху (деаут-пакеты используются для отключения устройств от их точки доступа Wi-Fi, чтобы инициировать повторное подключение, что позволяет агенту перехватывать хендшейки); - Количество успешных ассоциаций агента с точками доступа Wi-Fi. Если число ассоциаций велико, агент активно работает с точками доступа; - Число перехваченных хендшейков (handshakes) за эпоху. Хендшейк — это ключевой элемент для атаки на WPA/WPA2 сети, так как он содержит данные для последующего подбора пароля. Большое значение указывает на продуктивность агента; и т.д. Для реализации данной задачи используется скрипт на языке Python, который создает случайные значения для параметров эпохи, сохраняя их в формате JSON для дальнейшего анализа и использования в обучении. Использование JSON для хранения данных упрощает их обработку, анализ и передачу между системами. Этот формат интуитивно понятен и позволяет быстро увидеть структуру данных, также он относительно компактен, что позволяет эффективно хранить даже большие объемы данных без избыточной информации, используя минимально возможное количество символов. Результат первого обучения модели на сгенерированных данных в виде графика. Параметры: Изменение количества эпох Для проведения первого «эксперимента» с изменением параметров модели в части количества эпох необходимо скорректировать следующий блок кода в файле train.py. Изначально в работе рассматривается 10 эпох. Для того, что б посмотреть, как количество эпох влияет на модель, меняем его на 50: if __name__ == "__main__": logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") dataset_path = 'random_data.json' agent = MockAgent() environment = Environment(dataset_path=dataset_path, agent=agent) rewards = [] params_log = [] state = environment.reset() for epoch in range(50): action = environment.action_space.sample() state, reward, done, _ = environment.step(action) rewards.append(reward) params_log.append(environment.last['params']) if done: break Результаты: Изменение функции расчета награды Второй «эксперимент» направлен на изучение влияния изменения функции вычисления наград на итоговые результаты. Для этого код в файле reward.py был изменен. Данная функция вычисляет награду на основе нескольких параметров, характеризующих поведение агента и его взаимодействие с окружающей средой, используя вероятностные и пропорциональные зависимости. С математической точки зрения функция включает дроби, где числители и знаменатели нормализуют параметры состояния. В основе формулы лежит произведение доли успешных рукопожатий (num_handshakes), активного времени (active_for_epochs), и вероятности избегания нежелательных состояний (blind_for_epochs и missed_interactions), все из которых делятся на общее количество эпох или взаимодействий для нормализации. Дополнительно учитываются эмоциональные параметры (sad_for_epochs и bored_for_epochs), которые уменьшают награду, если их значения велики. Эти параметры тоже нормализуются через общее число эпох, и их влияние нивелируется, если они меньше заданного порога. Использование множителей 1e−20 предотвращает деление на ноль. Результаты: Очевидно, что изначальная функция расчета награды работала куда более качественно. Зато можно дальше поиграться с математикой и вывести формулу под уникальную задачу, если возникнет такая необходимость. Изменение нормализации и денормализации данных Третий «эксперимент» раскрывает влияние различных методов нормализации данных на итоговые результаты обучения. Для этого в файле parameter.py были произведены следующие изменения: 1. Добавление динамической регулировки диапазона параметра (adjust_bounds) Метод adjust_bounds изменяет диапазон значений параметра (min_value, max_value) в зависимости от текущей эпохи. Это позволяет адаптировать параметры во время тренировки в зависимости от прогресса. Логирование этих изменений помогает отслеживать, как изменяются параметры на разных этапах обучения: def adjust_bounds(self, epoch): """ Динамически изменяет диапазон параметра в зависимости от текущей эпохи. :param epoch: Текущая эпоха. """ self.min_value = max(self.min_value - epoch * 0.1, -100) self.max_value = min(self.max_value + epoch * 0.1, 100) logging.info(f"Parameter {self.name}: Adjusted bounds to [{self.min_value}, {self.max_value}]") С каждым новым шагом эпохи диапазоны значений параметров будут изменяться, что полезно для исследования влияния параметров на обучение. 2. Изменение вычисления "размера пространства" (space_size) Метод space_size теперь учитывает возможный сдвиг (с учетом scale_factor), который определяется в зависимости от минимального значения параметра. scale_factor корректируется в зависимости от минимального значения параметра: def space_size(self): return self.max_value + self.scale_factor Это позволяет более гибко масштабировать пространство действий, учитывая сдвиг диапазона значений. 3. Добавление шума при преобразовании действия в значение параметра (to_param_value) В методе to_param_value добавлен случайный шум в значение параметра: self.value += random.uniform(-0.05, 0.05) # Добавление шума Вводя случайный шум, создаются небольшие флуктуации в значениях параметров, что может улучшить обучение за счет случайных отклонений, увеличивая разнообразие состояния. 4. Нелинейное преобразование в методе denormalize Метод denormalize теперь включает нелинейное преобразование: nonlinear_scale = normalized**2 # Нелинейное преобразование Это означает, что значение параметра будет изменяться не линейно, а в квадрате нормализованного значения. Это может позволить более точно настроить параметры с меньшими изменениями в их значениях. 5. Учет важности параметров в denormalize В методе denormalize добавлена учет важности параметров из метаданных (meta): importance = self.meta.get('importance', 1.0) value *= importance Важность параметров может влиять на их итоговое значение, что позволяет учитывать, какие параметры важнее для модели. Результаты: Анализ результатов показал, что изменение подхода к нормализации и денормализации данных меняет распределение значений параметров, особенно в их крайних пределах, т.е. важно предварительно обрабатывать данные для успешного применения методов машинного обучения. Корректная нормализация позволяет улучшить как точность, так и стабильность модели усиленного обучения. Очевидно, Pwnagotchi – крайне перспективный проект, который можно превратить в очень и очень мощный инструмент автоматического тестирования безопасности. Горизонты простираются в огромном количестве направлений, причем не только в сторону написания плагинов, добавления всяких программно-аппаратных приблуд или «взломов» Bluetooth и IoT. У него есть возможность интеграции с такими титанами ИБ, как Wireshark и Metasploit. Однако, потребуется немало времени и умственных усилий, чтобы разобраться в этом проекте. Не каждый готов тратить на такое время и силы... Как здорово, что большую часть времени мне все равно нехер делать, и я, скорее всего, продолжу вас тут радовать своими щитпостами.
-
Привет, форумные
Здравствуй. Ну вроде все пучком. Работы дофига, учебы тоже. Спать охота 24/7 А твои делишки как?
- snoser telegram
-
Админы паблика тг по вопросам приложений Android и девайсов устроили срач с экстремискими и провокационными вопросами!
Ахахахаххахахаахахахахааххахахахахахахахахаххахахахаха
-
Автоматизация отправки уведомлений в Telegram Bot через Google Forms и Google Sheets
В этой статье я расскажу про использование Google Forms и Google Sheets для отслеживания расходов с автоматическими уведомлениями через Telegram Bot. После ввода суммы в форму бот должен отправлять сообщение с текущим статусом бюджета. Все скрипты в этой работе я вставляю во вшитый в в таблицы гугл редактор скриптов, который можно найти во вкладке “Расширения” под названием “Apps Script”. Там же настраиваются триггеры, по которым эти скрипты будут работать. Я уже давно пыталась найти связку между таблицами и ботом в телеграм, так как мне это было необходимо для решения множества задач. То же расписание в университете, к примеру, теперь будет реализовывать куда как легче и приятней, чем поднимать свой сервер для этой задачи и мучиться с тяжелейшей задачей переноса названия предметов в код. Изначально я рассматривала такие сервисы как IFTTT, pushbullet, однако эти капиталистические помойки были моментально посланы мной маршировать в закат сразу после требования оплатить подписку за вебхуки. И вот, о чудо! Я случайно наткнулась на то, что лежало на поверхности: Google App Script. На сегодняшнем простом примере расчета бюджета на каждый день я покажу, каким образом можно настроить взаимодействие между телегой и таблицами. Надеюсь, это будет полезно. Описание пошагово: 1. Сбор данных через Google Forms Сначала мне захотелось сделать так, чтобы каждый день в промежутке между 22:00 и 23:00 мне приходила ссылка на гугл формы с вопросом о том, сколько денег я потратила. Затем, по задумке, эта цифра заносится в специальный столбец и выступает главной переменной в формулах. Появится соблазн грузить данные формы в уже существующую таблицу, но опыт показал, что под данные формы все же лучше создавать отдельную книгу и уже в ней прописывать скрипт переноса данных в целевую таблицу: function onFormSubmit(e) { // Получаем данные из формы var formResponse = e.values; // Массив всех значений формы var sumValue = formResponse[1]; // Предполагаем, что сумма находится в первом столбце формы // Указываем идентификатор другой книги и лист, куда переносить данные var targetSpreadsheetId = 'sheetpost-id'; // ID целевой книги(можно найти в url таблицы между /d/ и /edit var targetSheetName = 'Расчеты'; // Название листа в целевой книге // Получаем целевой лист в другой книге var targetSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetId); var targetSheet = targetSpreadsheet.getSheetByName(targetSheetName); // Находим первую пустую ячейку в столбце C начиная с C3 var targetRange = targetSheet.getRange('C3:C'); // Диапазон начиная с C3 var values = targetRange.getValues(); // Получаем все значения в столбце C var row = values.findIndex(function(row) { return row[0] === ''; // Ищем первую пустую ячейку }); // Если не нашли пустую строку, то используем первую пустую ячейку if (row === -1) { row = values.length; } // Записываем сумму в найденную ячейку targetSheet.getRange('C' + (row + 3)).setValue(sumValue); // Записываем сумму в найденную ячейку } 2. Обработка данных в Google Sheets После того как в нужный мне столбец инкапсулировалось значение, таблица рассчитывает оставшийся бюджет на основе введённой суммы. Формулы вычисляют: Сколько потрачено сегодня. Сколько осталось на текущий день. Сколько можно потратить завтра. Сколько было доступно в начале дня. Пример моего кода: // Функция для отслеживания изменений в таблице function checkForChanges() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Расчеты"); // Лист с данными var oldSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("OldValues"); // Лист для хранения старых значений var rangeC = sheet.getRange('C3:C50'); // Диапазон для Value1 var rangeD = sheet.getRange('D3:D50'); // Диапазон для Value2 var rangeB = sheet.getRange('B3:B50'); // Диапазон для Value4 var valuesC = rangeC.getValues(); // Получаем значения из столбца C var valuesD = rangeD.getValues(); // Получаем значения из столбца D var valuesB = rangeB.getValues(); // Получаем значения из столбца B // Получаем старые значения из листа OldValues var oldValuesC = oldSheet.getRange('C3:C50').getValues(); var oldValuesD = oldSheet.getRange('D3:D50').getValues(); var updatedOldValuesC = []; var updatedOldValuesD = []; for (var i = 0; i < valuesC.length; i++) { var value1 = Math.round(valuesC[i][0]); // Значение из столбца C (округляем) var value2 = Math.round(valuesD[i][0]); // Значение из столбца D (округляем) var value4 = Math.round(valuesB[i][0]); // Значение из столбца B (округляем) // Получаем старые значения var oldValue1 = oldValuesC[i][0]; var oldValue2 = oldValuesD[i][0]; // Вычисляем Value3 как сумму value4 + Value2 (округляем) var value3 = Math.round(value4 + value2); // Если значение изменилось, и value1 не равно 0, отправляем уведомление и обновляем старое значение if ((value1 !== oldValue1 || value2 !== oldValue2) && value1 !== 0) { sendTelegramMessage(value1, value2, value3, value4); // Отправляем уведомление в Telegram // Добавляем измененные значения в массивы для обновления updatedOldValuesC.push([value1]); updatedOldValuesD.push([value2]); } else { // Если значения не изменились или value1 = 0, добавляем старые данные updatedOldValuesC.push([oldValue1]); updatedOldValuesD.push([oldValue2]); } } // Обновляем старые значения за один раз oldSheet.getRange('C3:C50').setValues(updatedOldValuesC); oldSheet.getRange('D3:D50').setValues(updatedOldValuesD); } // Функция для отправки сообщения в Telegram function sendTelegramMessage(value1, value2, value3, value4) { var token = "bot-API"; // Вставьте ваш Telegram API токен var chatId = "id"; // Вставьте ваш chat_id, в который должны быть отправлены данные из google // Формируем сообщение для отправки var message = "УВЕДОМЛЕНИЕ ОБ ИЗМЕНЕНИИ\n\n" + "Потрачено денег: " + value1 + "\n" + "Осталось: " + value2 + "\n" + "Можно потратить завтра: " + value3 + "\n" + "Было доступно: " + value4; var url = "https://api.telegram.org/bot" + token + "/sendMessage"; var payload = { chat_id: chatId, text: message }; var options = { method: "post", payload: payload }; UrlFetchApp.fetch(url, options); // Отправка сообщения в Telegram } Описание работы кода Цель функции checkForChanges отслеживать изменения в диапазонах столбцов таблицы Google Sheets, сравнивая текущие значения с сохранёнными старыми данными. При обнаружении изменений отправлять уведомления через Telegram Bot и обновлять список старых значений. Пошаговый процесс: 1. Получение текущих и старых значений Текущие данные считываются из листа "Расчеты" в диапазонах C3:C50 (Value1), D3:D50 (Value2) и B3:B50 (Value4). Старые данные берутся с листа "OldValues" для диапазонов C3:C50 и D3:D50. 2. Сравнение данных Проход по каждой строке таблицы: Значения из текущих и старых столбцов округляются. Если значения в столбцах C или D изменились (и value1 ≠ 0), генерируется уведомление в Telegram с помощью sendTelegramMessage. Если изменений нет, старые значения остаются без изменений. 3. Вычисление Value3 Value3 рассчитывается как сумма Value4 (данные из столбца B) и Value2 (данные из столбца D), результат округляется. 4. Обновление старых данных Изменённые значения записываются в массивы updatedOldValuesC и updatedOldValuesD. По завершении цикла обновляются диапазоны C3:C50 и D3:D50 на листе "OldValues", чтобы зафиксировать последние данные. Функция sendTelegramMessage Формирует сообщение с информацией: Потрачено денег (Value1) Осталось (Value2) Можно потратить завтра (Value3) Было доступно (Value4) Отправляет сообщение через Telegram API с помощью метода UrlFetchApp.fetch. Результат работы кода После внесения изменений в таблицу: Если данные в столбцах C или D изменились, Telegram Bot уведомляет о новых расходах и текущем состоянии бюджета. Обновляются старые значения, чтобы избежать повторных уведомлений. Также отдельно можно добавить отправку сообщения по времени в бот с ссылкой на гугл форму, чтобы не забыть внести расходы за день: function mySendTelegramMessage() { var token = 'bot-API'; // Ваш API Token var chatId = ''; // Ваш chat_id var message = 'Заполни форму! Если не тратилась, введи любое число. Иначе все поломается и умрет в муках (в первую очередь, ты): https://forms.gle/xxxxxxxx'; var url = 'https://api.telegram.org/bot' + token + '/sendMessage'; var payload = { chat_id: chatId, text: message }; var options = { method: 'post', contentType: 'application/x-www-form-urlencoded', payload: payload }; try { var response = UrlFetchApp.fetch(url, options); // Отправка запроса через API Telegram Logger.log('Message sent successfully: ' + response.getContentText()); } catch (e) { Logger.log('Error: ' + e.toString()); } } function createTimeTrigger() { // Создание триггера для выполнения sendTelegramMessage каждый день в 22:00 ScriptApp.newTrigger('mySendTelegramMessage') .timeBased() .everyDays(1) .atHour(22) // Установите нужное время .create(); } Вот так выглядят сообщения в Telegram: P.S. Это весьма сырой вариант подобной реализации, потому важно каждый день вности в форму какое-то число, хотя бы единицу, потому как если внести 0, то изменения не считаются и далее внесение данных может сильно "поплыть".
-
Блокировка Cloudflare в РФ ― Обсуждение
Спасибо тебе большое, милый человек. Но что-то думаю, нам всем уже легче просто дружненько собраться и переехать в Беларусь. Жизнь ИТ-шника в России - это бесконечная битва с РКН. Но не каждый из нас готов быть воином (/_;)/
Последние посетители 0
- Ни одного делегата форума не просматривает данную страницу