
fn main() {}
21.07.2019
23:34:56
Его попробуй что-ли

Владимир
21.07.2019
23:35:41

J0HHT4
21.07.2019
23:35:41
обязатенльно

Google

fn main() {}
21.07.2019
23:35:50
И?

J0HHT4
21.07.2019
23:35:57
когда не могу юзать pip

Julian =)
21.07.2019
23:36:08

fn main() {}
21.07.2019
23:36:11
Скачай билд
И сам собери
Или что там, wheel вроде
Еще проще тогда

J0HHT4
21.07.2019
23:37:46
бля
я вщ хз как объяснить

koder
21.07.2019
23:39:41
<class 'str'>
тогда дофига странно. получается что requests получил bytes и декодировал их в unicode какой-то кривой кодировкой (наверное utf). И это сработало, но теперь буквы поломались. А попробуй действительно делать
print(r.headers.get('content-disposition').encode('utf-8').decode("cp-1251"))
и заодно глянь на все заголовки
import pprint
pprint.pprint(r.headers)


Владимир
21.07.2019
23:48:26
тогда дофига странно. получается что requests получил bytes и декодировал их в unicode какой-то кривой кодировкой (наверное utf). И это сработало, но теперь буквы поломались. А попробуй действительно делать
print(r.headers.get('content-disposition').encode('utf-8').decode("cp-1251"))
и заодно глянь на все заголовки
import pprint
pprint.pprint(r.headers)
1)
print(r.headers.get('content-disposition').encode('utf-8').decode("cp-1251"))
LookupError: unknown encoding: cp-1251)
2)
<class 'NoneType'>
{'Server': 'nginx', 'Date': 'Sun, 21 Jul 2019 23:45:45 GMT', 'Content-Type': 'text/html; charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Expires': '0', 'Pragma': 'no-cache', 'Last-Modified': 'Sun, 21 Jul 2019 23:45:45 GMT', 'Cache-Control': 'no-cache,no-store,max-age=0,s-maxage=0,must-revalidate', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'Set-Cookie': 'lastdl=1563752745; expires=Fri, 19-Jul-2024 23:45:45 GMT; Max-Age=157680000; path=/; domain=.sendspace.com', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding'}
Здесь почему-то показывает content-type html, скорее всего нужно как-то указать, чтоб редиректы работали
Вот url: https://fs13n2.sendspace.com/dl/076abf9fa1aa4310a4098c42e1f60ca7/5d34f89c0bc9a849/hs91ng/%D0%B8%D0%BC%D1%8F%20%D1%84%D0%B01%D0%BB%D0%B0%202782%20%D0%B8%D0%BC%D1%8F.zip


koder
21.07.2019
23:54:34
1)
print(r.headers.get('content-disposition').encode('utf-8').decode("cp-1251"))
LookupError: unknown encoding: cp-1251)
2)
<class 'NoneType'>
{'Server': 'nginx', 'Date': 'Sun, 21 Jul 2019 23:45:45 GMT', 'Content-Type': 'text/html; charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Keep-Alive': 'timeout=20', 'Expires': '0', 'Pragma': 'no-cache', 'Last-Modified': 'Sun, 21 Jul 2019 23:45:45 GMT', 'Cache-Control': 'no-cache,no-store,max-age=0,s-maxage=0,must-revalidate', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'Set-Cookie': 'lastdl=1563752745; expires=Fri, 19-Jul-2024 23:45:45 GMT; Max-Age=157680000; path=/; domain=.sendspace.com', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding'}
Здесь почему-то показывает content-type html, скорее всего нужно как-то указать, чтоб редиректы работали
Вот url: https://fs13n2.sendspace.com/dl/076abf9fa1aa4310a4098c42e1f60ca7/5d34f89c0bc9a849/hs91ng/%D0%B8%D0%BC%D1%8F%20%D1%84%D0%B01%D0%BB%D0%B0%202782%20%D0%B8%D0%BC%D1%8F.zip
ну в урле имя файла в utf8, по заголовкам тоже, вроде, utf-8. Странно как-то. Может таки консоль странная и питон этого не понля? Что 'set | grep LC' показывает? А попробуй имя файла из content-disposition закодировать в utf-8, напечатать и посмотреть - будет ли с именем файла из url совпадать


Владимир
21.07.2019
23:55:34
ну в урле имя файла в utf8, по заголовкам тоже, вроде, utf-8. Странно как-то. Может таки консоль странная и питон этого не понля? Что 'set | grep LC' показывает? А попробуй имя файла из content-disposition закодировать в utf-8, напечатать и посмотреть - будет ли с именем файла из url совпадать
Возможно, скрипт на сервере просто.
MAILCHECK=60
for i in $(LC_ALL=C $prog --help);
for i in $(LC_ALL=C $prog --usage);
local LC_CTYPE=C;
__grubcomp "$(LC_ALL=C $prog --help | awk -F ":" '/available formats/ { print $2 }' | sed 's/, / /g')";
__grubcomp "$(LC_ALL=C $prog --help | awk -F "[()]" '/--target=/ { print $2 }' | sed 's/|/ /g')";
COMPREPLY+=($( compgen -W "$( { LC_ALL=C ifconfig -a || ip addr show; } 2>/dev/null | command sed -ne 's/.*addr:\([^[:space:]]*\).*/\1/p' -ne 's|.*inet[[:space:]]\{1,\}\([^[:space:]/]*\).*|\1|p' )" -- "$cur" ))
local argtype=$( LC_ALL=C $1 --help 2>&1 | command sed -ne "s|.*$prev\[\{0,1\}=[<[]\{0,1\}\([-A-Za-z0-9_]\{1,\}\).*|\1|p" );
COMPREPLY=($( compgen -W "$( LC_ALL=C $1 --help 2>&1 | command sed -ne 's/.*\(--[-A-Za-z0-9]\{1,\}=\{0,1\}\).*/\1/p' | sort -u )" -- "$cur" ));
COMPREPLY+=($( { LC_ALL=C ifconfig -a || ip link show; } 2>/dev/null | command sed -ne "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]].*/\1/p" -ne "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]]*$/\1/p" -ne "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]].*|\2|p" -ne "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]]*$|\2|p"
LC_ALL=C "$( dequote "$cmd" )" ${2:---help} 2>&1
LC_ALL=C "$( dequote "$cmd" )" ${2:---usage} 2>&1

Google

Владимир
21.07.2019
23:56:22
> А попробуй имя файла из content-disposition закодировать в utf-8, напечатать и посмотреть - будет ли с именем файла из url совпадать
Просто скопировать кракозябры и кодировать в utf-8?


koder
21.07.2019
23:58:43
Возможно, скрипт на сервере просто.
MAILCHECK=60
for i in $(LC_ALL=C $prog --help);
for i in $(LC_ALL=C $prog --usage);
local LC_CTYPE=C;
__grubcomp "$(LC_ALL=C $prog --help | awk -F ":" '/available formats/ { print $2 }' | sed 's/, / /g')";
__grubcomp "$(LC_ALL=C $prog --help | awk -F "[()]" '/--target=/ { print $2 }' | sed 's/|/ /g')";
COMPREPLY+=($( compgen -W "$( { LC_ALL=C ifconfig -a || ip addr show; } 2>/dev/null | command sed -ne 's/.*addr:\([^[:space:]]*\).*/\1/p' -ne 's|.*inet[[:space:]]\{1,\}\([^[:space:]/]*\).*|\1|p' )" -- "$cur" ))
local argtype=$( LC_ALL=C $1 --help 2>&1 | command sed -ne "s|.*$prev\[\{0,1\}=[<[]\{0,1\}\([-A-Za-z0-9_]\{1,\}\).*|\1|p" );
COMPREPLY=($( compgen -W "$( LC_ALL=C $1 --help 2>&1 | command sed -ne 's/.*\(--[-A-Za-z0-9]\{1,\}=\{0,1\}\).*/\1/p' | sort -u )" -- "$cur" ));
COMPREPLY+=($( { LC_ALL=C ifconfig -a || ip link show; } 2>/dev/null | command sed -ne "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]].*/\1/p" -ne "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]]*$/\1/p" -ne "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]].*|\2|p" -ne "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]]*$|\2|p"
LC_ALL=C "$( dequote "$cmd" )" ${2:---help} 2>&1
LC_ALL=C "$( dequote "$cmd" )" ${2:---usage} 2>&1
о боже, что там с настройками кодировки то, должно быть что-то в духе
LC_CTYPE=en_US.UTF-8, а у тебя 'С' стоит, которая, вроде ascii, хотя я тут не очень


Владимир
22.07.2019
00:02:11
print(r.headers.get('content-disposition').encode('utf-8'))
AttributeError: 'NoneType' object has no attribute 'encode'
там еще функция get_filename_from_cd
она парсит именно имя файла из заголовка

koder
22.07.2019
00:03:54

Владимир
22.07.2019
00:03:58
а в консоли print('Привет') выдает нормально
Вот так принт выдает кракозябры. Если заенкодить filename в utf-8, то получается нормально. Значит, filename - в кодировке отличной от utf-8?
filename = get_filename_from_cd(r.headers.get('content-disposition'))
print(filename)

koder
22.07.2019
00:09:37
можно просто в консоли

Владимир
22.07.2019
00:10:45
> сори, я потерялся. То r.headers.get(..) выдает None, то строку
Разные url были. Вообще странно, 1 url выдает None, другой другое
разные url одного сервиса sendspace.com

koder
22.07.2019
00:12:18
сори, я хз что у тебя :( мои идеи кончились

Владимир
22.07.2019
00:13:09

Shieldy
22.07.2019
01:19:10
Добро пожаловать, X!
Не забудь ознакомиться с правилами чата.
https://t.me/ru_python/802295

Julian =)
22.07.2019
01:19:54
Парсеры на месте? :D
curl может как-то вытянуть html и на лету перекодировать его?

Google

Julian =)
22.07.2019
01:22:14
Все, нашел iconv
iconv -f cp1251 -t utf8 /Video/somefile.srt -o /Video/subtitles.srt
Аля такого

Shieldy
22.07.2019
01:27:08
Добро пожаловать, @yarfuo!
Не забудь ознакомиться с правилами чата.
https://t.me/ru_python/802295

Илья
22.07.2019
01:27:39

Julian =)
22.07.2019
01:30:03
Ну я за флаги спрашивал, мб кто юзал
Лень было в мане красноглазить

Илья
22.07.2019
01:34:59
ну, смотря какой пейджер используется. На сколько помню, в убунте less(или more)

Shieldy
22.07.2019
03:08:05
Добро пожаловать, Аня Коваленко!
Не забудь ознакомиться с правилами чата.
https://t.me/ru_python/802295

Sergey
22.07.2019
04:10:57
Всем привет! Есть два компьютера в пределах одной локальной сети. На оба компьютера одновременно поступает команда, но выполнится она должна только на одном из них. Как это можно сделать? Я пока смотрю в сторону алгоритма raft, планирую сделать его реализацию используя twisted, но текущая программа представляет собой виндовую службу с синхронным кодом - не придумал пока как это все красиво подружить.

Dmitriy
22.07.2019
04:35:42
Привет. Подскажите в чем проблема. Декоратор не считает время - при первом запуске выдал рез , каждый последующий всегда нули в формате 0:00:00 http://dpaste.com/0BCZP14

Sergei
22.07.2019
04:46:26
Используй time.monotonic() для вычисления дельты

Sergey
22.07.2019
04:49:07

Dmitriy
22.07.2019
04:49:17
Друзья - это обучение - то что вы говорите , я ещё не проходил...((

Sergey
22.07.2019
04:49:17
Так что, увы не вариант

Андрей
22.07.2019
04:49:45

Shieldy
22.07.2019
05:03:21
Добро пожаловать, Stay Lazy!
Не забудь ознакомиться с правилами чата.
https://t.me/ru_python/802295

elessar
22.07.2019
05:39:40
парни подскажите самые самые эвенты на территории снг по питону в 20 году))

Google

Cykooz
22.07.2019
05:42:05

Sergey
22.07.2019
05:44:16

Cykooz
22.07.2019
05:45:42

Sergey
22.07.2019
05:46:17
Спасибо, попробую

Cykooz
22.07.2019
05:46:49
Если у тебя винда, то с Redis будет наверное проще, не уверен можно ли в винде запустить etcd

Sergey
22.07.2019
05:48:23
Ок, попробую с redis. Спасибо ещё раз!

Cykooz
22.07.2019
05:49:30
Реализация локов через редис всяко есть готовая. Если и не в самом адаптере для редиса, то в сторонних пакетах точно.

Sergey
22.07.2019
05:50:38
Тогда вообще отлично! А то я думал с нуля (почти) писать надо.

Tishka17
22.07.2019
05:53:36

Sergey
22.07.2019
05:54:54

Tishka17
22.07.2019
05:55:43
Эм. С двух машин одна команда на две машины?
Давай-ка подробнее

Sergey
22.07.2019
05:56:59

Tishka17
22.07.2019
05:57:28
На или с?

Sergey
22.07.2019
05:57:43
На

Tishka17
22.07.2019
05:58:18
Ну тогда норм
Правда тут вопросы:
1. Почему нельзя при отправке сообщений сразу решить на какой машине выполнять?
2. А что если машина выйдет из строя? Надо ли все равно команду выполнить на первой?
3. А не окажется ли завтра 10 машин?

Vitalii
22.07.2019
06:00:34
Ребят, а кто то работает с kubernetes?

Sergey
22.07.2019
06:00:53

Google

Максим
22.07.2019
06:03:26

Sergey
22.07.2019
06:04:00
Тут надо уточнить, что команды прилетают редко, реже чем раз в день. И скорость выполнения не особо важна, надо чтобы только выполнилось один раз и гарантировано. Поэтому, чем меньше сторонних сущностей - тем лучше. Но если проще всего через redis или Kafka - то я попробую.

Vitalii
22.07.2019
06:04:30

Tishka17
22.07.2019
06:08:05
Кафка выглядит перебором для такого

Anton
22.07.2019
06:10:22
Блин, такой спор про аннотации пропустил :(
В догонку скажу, если не забанят конечно. Если ошибки нужно отлавливать только в рантайме и аттрибут_еррор нестрашны, то зачем виндузы сделали ts поверх js?!

Tishka17
22.07.2019
06:21:46

Cykooz
22.07.2019
06:26:23
Если команды такие редкие. Можно просто сохранять их в базу данных (с уникальным ключём для дедупликации). И запускать "по крону" задачку (например раз в 10 минут), которая будет искать в базе ещё не выполненые задачи и выполнять их.
Если в проекте уже есть база данных, то последний вариант выглядит как менее требовательный. Хотя он не исключает использования локов, т.к. запускать "крон" задачу надо на обеих серваках на случай если один из них "сломается".


Sergey
22.07.2019
06:31:06


Cykooz
22.07.2019
06:34:07
Тогда видимо придётся на "втором" сервере ждать "подтверждения", что задача была до конца выполнена на "первом", дабы быстро среагировать на поломку "первого".