
Viktor
22.03.2016
13:32:12
РЕбята

Pavel
22.03.2016
13:32:14
* чат боязливо пригнулся.

Viktor
22.03.2016
13:32:16
Кто с ведроида
Пожалуйста, тапните на скрепку и сделайте скрин

Google

Aragaer
22.03.2016
13:33:23
может лучше только код перебора в пастебин?

Viktor
22.03.2016
13:33:59
бл

Artem
22.03.2016
13:34:09
Лучше в gist.github.com

Viktor
22.03.2016
13:34:39

Pavel
22.03.2016
13:34:41

Viktor
22.03.2016
13:35:01
Как локацию отпрвить


Igor
22.03.2016
13:35:40
MAIN.PY
import plugin
plugin.LoadPlugins()
s = ''
while (s != 'exit'):
print('>'),
s = input()
a = s.split(' ')
for p in plugin.Plugins:
p.OnCommand(a[0], a[1:])PLUGIN.PY
import os
import sys
# Экземпляры загруженных плагинов
Plugins = []
# Базовый класс плагина
class Plugin(object):
Name = 'undefined'
# Методы обратной связи
def OnLoad(self):
pass
def OnCommand(self, cmd, args):
pass
def LoadPlugins():
ss = os.listdir('plugins') # Получаем список плагинов в /plugins
sys.path.insert( 0, 'plugins') # Добавляем папку плагинов в $PATH, чтобы __import__ мог их загрузить
for s in ss:
print('Found plugin'), s
__import__(os.path.splitext(s)[ 0], None, None, ['']) # Импортируем исходник плагина
for plugin in Plugin.__subclasses__(): # так как Plugin произведен от object, мы используем __subclasses__, чтобы найти все плагины, произведенные от этого класса
p = plugin() # Создаем экземпляр
Plugins.append(p)
p.OnLoad() # Вызываем событие загруки этого плагина
returnПОДПАПКА PLUGINS
FOO.PY
from plugin import Plugin
class HelloPlugin(Plugin): # производим наш плагин от родительского класса
Name = 'HelloPlugin v 1.0 Extreme Edition'
# замещаем нужные методы
def OnLoad(self):
print('HelloPlugin 1.0 Extreme VIP Edition Loaded!')
def OnCommand(self, cmd, args):
if (cmd == 'hello' and len(args)> 0):
print('It\'s', args[ 0], '!\nJeez, man, nice to meet you!')
return True
else:
return False


Viktor
22.03.2016
13:35:52
Ты еще раз 20 пришли
Мы не заметили

Pavel
22.03.2016
13:35:58

Igor
22.03.2016
13:36:05
ТАК оно без форматирования было


Whore Amazing
22.03.2016
13:36:08
MAIN.PY
import plugin
plugin.LoadPlugins()
s = ''
while (s != 'exit'):
print('>'),
s = input()
a = s.split(' ')
for p in plugin.Plugins:
p.OnCommand(a[0], a[1:])PLUGIN.PY
import os
import sys
# Экземпляры загруженных плагинов
Plugins = []
# Базовый класс плагина
class Plugin(object):
Name = 'undefined'
# Методы обратной связи
def OnLoad(self):
pass
def OnCommand(self, cmd, args):
pass
def LoadPlugins():
ss = os.listdir('plugins') # Получаем список плагинов в /plugins
sys.path.insert( 0, 'plugins') # Добавляем папку плагинов в $PATH, чтобы __import__ мог их загрузить
for s in ss:
print('Found plugin'), s
__import__(os.path.splitext(s)[ 0], None, None, ['']) # Импортируем исходник плагина
for plugin in Plugin.__subclasses__(): # так как Plugin произведен от object, мы используем __subclasses__, чтобы найти все плагины, произведенные от этого класса
p = plugin() # Создаем экземпляр
Plugins.append(p)
p.OnLoad() # Вызываем событие загруки этого плагина
returnПОДПАПКА PLUGINS
FOO.PY
from plugin import Plugin
class HelloPlugin(Plugin): # производим наш плагин от родительского класса
Name = 'HelloPlugin v 1.0 Extreme Edition'
# замещаем нужные методы
def OnLoad(self):
print('HelloPlugin 1.0 Extreme VIP Edition Loaded!')
def OnCommand(self, cmd, args):
if (cmd == 'hello' and len(args)> 0):
print('It\'s', args[ 0], '!\nJeez, man, nice to meet you!')
return True
else:
return False
прекрати, аспид

Google

Igor
22.03.2016
13:36:08
какого то

Viktor
22.03.2016
13:36:08

Artem
22.03.2016
13:36:33
Не надо в чат такое длинное, пожалуйста. И сообщения можно редактировать.

Igor
22.03.2016
13:36:42
не знал

Ivan
22.03.2016
13:38:34
не знал
Игорь, воистину, попробуйте http://pastebin.com, ибо невозможно читать же

Pavel
22.03.2016
13:39:01
да чё там читать, вот статья откуда код взят.
https://habrahabr.ru/post/79513/

Igor
22.03.2016
13:39:18
ну я хз
было в архве

Pavel
22.03.2016
13:39:53
просто я экономлю общие силы на пастебин и прочее.
там же в статье - 45 комментариев на эту проблематику.

Igor
22.03.2016
13:40:47
так я статейку вроде как и видел, и хотел ее найти - но не мог
http://jenyay.net/Programming/PyPlugins
Тут вот интереснее)

[Anonymous]
22.03.2016
14:35:39
Как в django файл передать на скачивание?

Sasha
22.03.2016
16:00:15
Есть вопрос.
Ситуация такая:
-- Есть некие 'посты' у юзера.
-- У пользователя может быть подписка, но она может кончать или он может отказаться.
-- Проще говоря, есть propherty - is_pro. Оно boolean. И можно не лезть в мелочи.
Суть:
Если is_pro у юзера is False - у него замораживаются все посты, крмое одного. Они не отображаются на главной странице, среди других и в его личном кабинете тоже.
Два пути решения в голове:
1) Сделать поле в модели поста. Запустить периодический таск, который бы пробегался по всем юзерам и если юзер больше не про, помечал бы все посты, кроме одного как невидимые.
2) На эндпоинтах сделать каким-то образом аггрегацию, чтобы при:
Post.objects.all() она еще и смотрела, какие принадлежат каким юзерам и если выполнены условия не включать их в выборку.
Какой вариант будет лучше?

Artem
22.03.2016
16:22:45
второе, конечно

Sasha
22.03.2016
16:29:16

Artem
22.03.2016
16:30:16
можно сделать в модели хелпер метод, который фильтрует как надо и пользоваться им

parikLS
22.03.2016
16:30:35
или же менеджер

Sasha
22.03.2016
16:41:55
Менеджер - это хорошо, да

Google

Sasha
22.03.2016
17:02:12
Но есть подводные камни.
В модели post(на самом деле это нифига не пост, это для примера, юзер завязан таким образом)
class Post:
owner = ForeignKey(CustomUserModel)
Не представляю, каким образом можно замутить менеджер у модели Post.

terry
22.03.2016
19:00:09
https://habrahabr.ru/post/279923/

87776
22.03.2016
19:38:04
чуваки
Вот смотрите
хотя...
@aragaer
тут?
короче, вот есть питон, у него куча тредов

Viktor
22.03.2016
20:37:12
И?

Алексей
22.03.2016
20:49:24
Типа продолжите историю. Открытый конкурс и всё такое...

Aragaer
22.03.2016
20:55:25
а почему сразу вдруг я?
я про треды в питоне не особо чего знаю на самом деле

Pavel
23.03.2016
02:28:18

Aragaer
23.03.2016
04:53:48
автопортрет типа. Еще студенческих времен

Denis 災 nobody
23.03.2016
05:51:52
Бутылки водки не хватает )

[Anonymous]
23.03.2016
07:00:59
Какой стек технологий выбрать для телеграм бота? Питон+фласк? Питон+торнадо? А бд какую?

Andrey
23.03.2016
07:02:07

bakatrouble
23.03.2016
07:02:22
Лучше без вебхуков
Там адок

[Anonymous]
23.03.2016
07:02:46
А бд какая?

Google

bakatrouble
23.03.2016
07:02:57
Смотря какой бот
Может и редиса хватить

[Anonymous]
23.03.2016
07:04:04
А на какой площадке его можно разместить безоплатной?

87776
23.03.2016
07:07:18

bakatrouble
23.03.2016
07:07:19
Ух
Не пользовался, но pythonanywhere хватит, наверное

Admin
ERROR: S client not available

Danila
23.03.2016
07:07:43
о/

bakatrouble
23.03.2016
07:07:51

[Anonymous]
23.03.2016
07:08:02

87776
23.03.2016
07:08:23
я не понимаю, таки почему вы не исмпользуете python-telegram-bot?

bakatrouble
23.03.2016
07:08:36
А вообще можно слабенький vps найти

87776
23.03.2016
07:08:56
ес2
у них год бесплатно впс)

[Anonymous]
23.03.2016
07:09:11
Там на год? Ага
Да, слыхал

bakatrouble
23.03.2016
07:09:32
Я у хетцнера за 4 евро/месяц поначалу брал
Сейчас помощнее

[Anonymous]
23.03.2016
07:09:38
А гугл аппс что с этим? Там платно?

Google

[Anonymous]
23.03.2016
07:10:33
А бд какую брать?

bakatrouble
23.03.2016
07:10:47
От задач зависит же

[Anonymous]
23.03.2016
07:11:31
А как их разлелить-то?
Задачи

bakatrouble
23.03.2016
07:12:06
Ну вот что бот делать будет?

Sharkus
23.03.2016
07:12:46
Флибусту раздавать, вестимо.

87776
23.03.2016
07:12:56
j,]zcybnt vyt

[Anonymous]
23.03.2016
07:12:57
Давать инфу клиенту, брать инфу у клиента

Sharkus
23.03.2016
07:13:03
Ну, я так и сказал :)

87776
23.03.2016
07:13:04

Sharkus
23.03.2016
07:13:23
обосну
Not Invented Here ≈ Фатальный Недостаток.

[Anonymous]
23.03.2016
07:13:43
Или детальнее?
Нет, не флибусту, куда мне до них, лол

Sharkus
23.03.2016
07:14:56
Ну, взять у клиента "инфу", в виде, скажем координат и вернуть ему "инфу" в виде карты и взять у клиента, скажем, id трекера почты россии и вернуть ему данные сайта - слегка разные задачи, входящие в твоё общее описание.

[Anonymous]
23.03.2016
07:16:19
Ну, я бота для универа хочу написать, который будет присылать расписание, вот

bakatrouble
23.03.2016
07:16:44
Бери монго, например