
trump ? trump ? hillary
15.03.2016
22:14:03
что за тема для atom?

Alexey
15.03.2016
22:14:10
ща
Atom Dark
Base15 tomorrow dark

Google

Alexey
15.03.2016
22:14:41
синтаксис

[Anonymous]
15.03.2016
22:18:35
М, как мне передать параметр скриптом питона в шатдавн?
Даун, ладно

Artem
15.03.2016
22:23:51
подумал, что можно сделать так:
@contextmanager
def expect_change(obj, attr, change):
before = getattr(obj, attr)
yield
after = getattr(obj, attr)
assert after - before == change
и далее
with expect_change(walrus, 'energy', 100):
walrus.receive_gift(cheese)

[Anonymous]
15.03.2016
22:24:36
Субпроцесс, да?
Для винды

Artem
15.03.2016
22:25:12

[Anonymous]
15.03.2016
22:26:29
Понел

Aragaer
15.03.2016
22:35:03

Viktor
15.03.2016
22:35:22
Да, я нашел
Само в голове всплыло
грущу что забыл
и в голове что-то начинает

Google

Viktor
15.03.2016
22:35:34
"балмер!" балмер! балмер!
Но всё равно спасибо

Artem
15.03.2016
22:38:57
девелоперс! девелоперс! девелоперс!

Viktor
15.03.2016
22:39:23
hehe

[Anonymous]
15.03.2016
22:44:36
Екараный бабай
А виндовсам тоже нужен суперпользователь для шатдауна?

bakatrouble
15.03.2016
23:08:29
Нет, это на линухе в десктопных дистрах рут не нужен, а при обратных дефолтных настройках настраивается

[Anonymous]
15.03.2016
23:09:48
Понел

Alexey
16.03.2016
04:48:44
Парррррррни... тут никто не работал с cordova + получением файлов из локалстораджа
?
а то у меня пошел 5ый час хождения по кругу и я начинаю сходить с ума с этого говна ,____, оно не хотет запускаться

Yegor
16.03.2016
05:02:18
ребят, привет. я добавил команды своему боту через botfathera, но он их добавил в формате "/command@my_bot"
не знаете, как от @my_bot избавиться?
*я про телеграм*
а, понял, это только в группах

Υπερβορεία
16.03.2016
05:04:20

Yegor
16.03.2016
05:04:48
Да я, вроде, прочитал этот раздел в документации, но один абзац пропустил)
Сорян)

Mikhail
16.03.2016
05:25:09

Yegor
16.03.2016
05:25:18
Да-да, я это прочитал

Google

Yegor
16.03.2016
05:27:31
А если я точно знаю, что в группе не будет больше одного бота, это мне не поможет?)
Он всё равно автоматом припишет этот постфикс?

[Anonymous]
16.03.2016
05:47:11
А ночью чат окончательно превратился в конференцию по самоутверждению?

Mikhail
16.03.2016
05:59:16

Pavel
16.03.2016
06:00:04

[Anonymous]
16.03.2016
06:01:45
Какие то ls grep в powerhell
Хотя ls там есть

Dmitriy
16.03.2016
07:36:05

Yegor
16.03.2016
07:36:26
Ага, точно так же

Dmitriy
16.03.2016
07:38:46
сделай просто cmd = text.split('@')[0]

Yegor
16.03.2016
07:39:38
Но ведь эти команды botfather создаёт, я не могу их в коде редактировать
Я бы так и сделал)

Dmitriy
16.03.2016
07:41:00
в botfather нужно только если нужна подсказка для клиентов

Yegor
16.03.2016
07:41:08
вот она и нужна
Так-то понятно, что я могу help сделать, всё такое, но удобнее с подсказками, не все хотят тыкать хелп)

Dmitriy
16.03.2016
07:41:30
и твоему боту команда придет как текст
и вот в обработке текста ты уже и напишешь

Artem
16.03.2016
07:41:42
а чем тебя такая подсказка не устраивает? explicit is better than implicit.

Denis 災 nobody
16.03.2016
08:32:11

Sasha
16.03.2016
11:23:54
Пагни, какой http статус ставить, если один из required fields не заполнен в запросе?

Google

Sasha
16.03.2016
11:24:08
400?

Viktor
16.03.2016
11:43:09

trump ? trump ? hillary
16.03.2016
12:14:24

finkel
16.03.2016
12:16:56

trump ? trump ? hillary
16.03.2016
12:18:38
app.get('/teapot', function(req, res) {
res.send('I'm a teapot', 418)
});

Sasha
16.03.2016
12:57:33
Вопросец еще.
Допустим, у меня аутентификация на основе токена(допустим, это jwt).
Там в payload - айдишник юзера.
Т.е. фактически при каждом запросе мне нужно делать decode токена и запрос к базе, чтобы понять, что за юзер.
Это норма вообще?

Pavel
16.03.2016
12:58:25
а что плохого?

Viktor
16.03.2016
12:58:33
При каждом запросе на авторизацию?

Admin
ERROR: S client not available

Viktor
16.03.2016
12:58:40
Или при любом запросе?

Sasha
16.03.2016
13:01:06
При любом запросе.
Например, у меня есть эндпоинт, юзер в нем может себе поменять данные.
Допустим, метод patch в классе с декоратором, который проверяет валидность токена.
объект юзера я могу получить только, только если декодирую токен, достану айдишку и сделаю:
User.objects.get(id=ObjectId(getattr(g, 'user_id', None))
точнее, токен декодируется уже в декораторе и делает например:
g.user_id = payload['sub']

Pavel
16.03.2016
13:02:10
а что, декодирование токена такая тяжелая операция, чтобы париться неё?

Υπερβορεία
16.03.2016
13:02:32
я вот тоже чет не понял, что надо-то?

Sasha
16.03.2016
13:02:52
Каждый раз запрос к базе для оплучения текущего юзера - это норма?
дял получения текущего юзера из токена
Вопрос в том, норма или нет. вот и все

Pavel
16.03.2016
13:03:20
Конечно норма. Но если база очень далеко, то храни юзера в токене.

Υπερβορεία
16.03.2016
13:03:23
почему и нет?

Viktor
16.03.2016
13:03:29
Ну хз, я считаю что это не очень хорошо

Google

Sasha
16.03.2016
13:04:02

Pavel
16.03.2016
13:04:02

Viktor
16.03.2016
13:04:27
Минут 10 кэшировать

Pavel
16.03.2016
13:05:31
Минут 10 кэшировать
кеширование запросов выходит за рамки "ходить ли в базу за юзерами, кмк. Так мы договоримся до выбора базы для хранения пользователей.

Viktor
16.03.2016
13:05:58
Ну это да)

Pavel
16.03.2016
13:05:59
там же выборка по primary key, она мнгновенна будет.

Viktor
16.03.2016
13:06:20
Еще можно действительно хранить юзера в токене, но это уже опасно, нет?

Sasha
16.03.2016
13:06:44
Айдишки достаточно думаю

Pavel
16.03.2016
13:06:58

Sasha
16.03.2016
13:07:00
Не вижу смысла хранить объект. А вообще сейчас гляну ,как в django-jwt это сделано

Artem
16.03.2016
13:07:32

Υπερβορεία
16.03.2016
13:07:32

Sasha
16.03.2016
13:07:52
Ну это. Я тут посмтирел исходники популярной либы
User = get_user_model()
username = jwt_get_username_from_payload(payload)
if not username:
msg = _('Invalid payload.')
raise exceptions.AuthenticationFailed(msg)
try:
user = User.objects.get_by_natural_key(username)
except User.DoesNotExist:
msg = _('Invalid signature.')
raise exceptions.AuthenticationFailed(msg)
т.е. да. Каждый раз получение юзера - запрос к базе

Pavel
16.03.2016
13:08:34
тупое, прямолинейное и неубиваемое решение

Sasha
16.03.2016
13:09:26
А у джанги базовая аутентификация же на куках построена?
Есть подозрение, что там получение current_user - так же и делается какждый раз

Pavel
16.03.2016
13:10:15
по дефолту - да.