Алексей
а в последствии через ffmpeg
Алексей
( Опять же вопрос реалтайма в железе машины)
Алексей
проблема тут очень серьещная
Алексей
в мощности машины, потому что машина в планах пока очень слабая
Алексей
прога стоять будет на машине из говна и палок
🅰️nimeCoder
У меня недавно идея была делать превью спрайты для видео плеера на лету из HLS через ffmpeg, результат вроле более менее, но вышло около 1-2 минут для видео 360-480 р длиной примерно в 25 минут, при условии что на 1 секунду приходится 1 кадр спрайта, а на пк более менее новое железо и сеть около 50 мбит
🅰️nimeCoder
Около 1 минуты <<прогрева>> видео при долбежке цпу
🅰️nimeCoder
React and electron. Electron just browser with ipc and main nodejs process. You can create electron app from scratch or find app templates which uses react. Try electron-forge, it has webpack plugin + react guide Electron has the English community in discord https://discord.com/invite/APGC3k5yaH
Семён
Здравствуйте. Подскажите, как в окне electron запустить другую программу? Куда копать?
scissor.eth
Всем привет, в общем хочу анпакнуть проект, а мне выдает такую ошибку... Могу финансово отблагодарить если кто-нибудь поможет решить проблему ❤️
scissor.eth
Rewrite
Попробуй через npx/смени версию ноды, на крайняк какой-нибудь онлайн экстрактор
🅰️nimeCoder
Вроде как asar можно зашифровать
M?
всем привет кто нибудь сталкивался? node_modules/electron-chromedriver: Command failed. Exit code: 1 Command: node ./download-chromedriver.js Arguments: Directory: /Users/canada/Documents/work/crm/node_modules/electron-chromedriver Output: /Users/canada/Documents/work/crm/node_modules/electron-chromedriver/download-chromedriver.js:19 if (err != null) throw err
M?
mac m1
scissor.eth
Вроде как asar можно зашифровать
да, но внутри видно код (библиотек во всяком случае)
scissor.eth
онлайн экстракторов вообще не нашёл
scissor.eth
ну типа если открывать app.asar в нотпаде ))
Strike
люди добрые помогите, пишу простую программку, всю голову сломал, перерыл весь интернет уже неделю бьюсь над элементарной задачей, которая в плюсах одной строчкой кода пишется, все гайды в интернете идут прахом с обновлением электрона, а он обновляется каждый день! Задача проста, есть index.html, там есть кнопка "выбрать директорию" и инпут "путь до директории". Нужно при нажатии кнопки получить в index.html переменную с путем до директории
Strike
Кнопка должна открыть диалоговое окно выбора директории на пк
Anonymous
всем привет, подскажите как скрыть панель сверху (где кнопки закрыть, вернуть и т.д)
ALΣX
всем привет, подскажите как скрыть панель сверху (где кнопки закрыть, вернуть и т.д)
https://www.electronjs.org/docs/latest/api/menu прокинь null, но будет работать на linux & win, mac хз
Rewrite
https://www.electronjs.org/docs/latest/api/menu прокинь null, но будет работать на linux & win, mac хз
нет(( ты путаешь тайтл бар с менюбаром/контекстным меню
ALΣX
нет(( ты путаешь тайтл бар с менюбаром/контекстным меню
Ну тогда задавать нужное значение свойству titleBarStyle во время создания окна
ALΣX
но судя доки, {frame: false} все же будет более универсальным решением
Vi
Ребят, всем привет. Пожалуйста, подскажите, как решить проблему или может кто-то готов подзаработать и помочь. Есть фронт на электроне, есть бэк - скрипт, который работает с API, когда пытаюсь сконнектить, то получаю такую ошибку. В чем может быть причина? Уже неделю пытаюсь решить этот вопрос
Vi
Точнее я понимаю, в чем ошибка, но как решить ее - не знаю
Vi
Как я понял, электрон работает на потоке хрома, обычный код на node, нужно просто запустить электрон да серверном потоке, node.js. Как это реализовать…
🅰️nimeCoder
через IPC сделай
Vi
Я в электроне и js просто ноль
🅰️nimeCoder
ну крч можно сделать «вызов» функции в render из main процесса и получить результат
Vi
……..
🅰️nimeCoder
ща скину документацию, там не сложно
Viktor
Точнее я понимаю, в чем ошибка, но как решить ее - не знаю
Если я правильно понимаю, то где-то в запросе выставляются куки, из-за этого валится. Скорее всего это сделать не получится, надо переложить эту работу на сервер
🅰️nimeCoder
……..
https://www.electronjs.org/docs/latest/tutorial/ipc
Viktor
Ну вооот, а как переложить
убрать выставление куков в запросе, и написать этот функционал на сервере
Vi
Всм на сервере?
Viktor
в этом примере axios куда запрос делает?
Vi
На сайт
Viktor
На сайт
ну вот надо чтобы сайт выставлял куки, а не электрон
🅰️nimeCoder
Создается в main процессе (тот что запускает приложение) обработчик с именем, в render ты его вызываешь по имени, и передаешь данные вторым аргументом, потом получаешь в main. Возвращать можно промис в main и ждать его в renderer. Естть одно условие - объект который возвращается, должен быть с возможностью сериализации (его можно превратить в JSON) иначе будет ошибка клонировани объекта вот более конкретный пример // Renderer process ipcRenderer.invoke('some-name', someArgument).then((result) => { // ... }) // Main process ipcMain.handle('some-name', async (event, someArgument) => { const result = await doSomeWork(someArgument) return result }) отсюда
Vi
ну вот надо чтобы сайт выставлял куки, а не электрон
Они закрытые, я их имитирую, мимикрируя под прльзователя
🅰️nimeCoder
а по поводу куков, возможно думаю можно решить вопрос костылями, перехватывая все запросы в главном процессе и проверяя на наличие куков, обрабатывать как-то и удалять их из запроса, чтоб небыло ошибки
🅰️nimeCoder
Господи, ничего не понимаю))
ладно, тяжелый случай)) вот это в main (там где прилу стартуешь) ipcMain.handle('some-name', async (event, someArgument) => { const result = await doSomeWork(someArgument) return result }) some-name - имя, оно должно совпадать когда вызываешь, т.е при вызове должен передать именно его event - объект эвента, можно опустить someArgument - данные, например объект который ты передал при вызове (какая нибудь инфа для последующего АПИ вызова) const result = await doSomeWork(someArgument) - твой апи вызов, или любая другая работа return result - возврат результата в место в renderer (где уже браузерная страничка твоя, там где ты вызывал) дальше по поводу вызова: const result = await ipcRenderer.invoke('some-name', someArgument) someArgument - тот объект данных который ты передаешь some-name - имя обработчика который вызываешь в main result - результат который вернул main процесс
🅰️nimeCoder
ipcMain - импортируешь из электрона в main процессе ipcRenderer - импортируешь в рендер процессе там где делаешь invoke скорее всего придется сделать отключение контекстной изоляции у окна и включить node integration или же использовать context bridge
Vi
Я думаю очень тяжелый случай))
🅰️nimeCoder
🅰️nimeCoder
на электроне когда то чет писал? )
No
Никогда
а на чем писал вообще? и зачем тогда тебе электрон?
Vi
C/++, Python
Vi
а на чем писал вообще? и зачем тогда тебе электрон?
Нужен десктоп, какие тут еще варианты?
No
Нужен десктоп, какие тут еще варианты?
да полно на самом деле. если знаешь плюсы - есть Qt
Vi
я пробовал, не могу сделать нормальный дизайн на нем
Vi
по-моему это просто невозможно
No
возможно конечно, полно же всего написано на нем
No
ну а вообще, там есть такая штука как Electron Fiddler
No
скачай его - это как плейграунд с готовыми примерами
No
полистай его, посмотри как там сделана отправка сообщений между main и renderer
Vi
возможно конечно, полно же всего написано на нем
я не видел ни одного примера с использованием исключительно qt
Алексей
Подскажите, как в электроне сделать так чтобы приложение обновлялось и перезапускалось? Причем чтобы перезапуск происходил только после обновления.