configurable bot token
This commit is contained in:
@@ -3,3 +3,12 @@ from django.apps import AppConfig
|
||||
|
||||
class FeedsConfig(AppConfig):
|
||||
name = 'feeds'
|
||||
|
||||
def ready(self):
|
||||
self.register_config()
|
||||
|
||||
def register_config(self):
|
||||
import djconfig
|
||||
from .forms import FeedsAppConfigForm
|
||||
|
||||
djconfig.register(FeedsAppConfigForm)
|
||||
|
@@ -1,4 +1,6 @@
|
||||
from django import forms
|
||||
from django.forms import ModelForm
|
||||
from djconfig.forms import ConfigForm
|
||||
|
||||
from feeds.models import Feed
|
||||
|
||||
@@ -19,3 +21,12 @@ def get_config_form(mdl):
|
||||
model = mdl
|
||||
exclude = ()
|
||||
return ConfigForm
|
||||
|
||||
|
||||
class FeedsAppConfigForm(ConfigForm):
|
||||
slug = 'feeds'
|
||||
title = 'Feeds'
|
||||
|
||||
feed_bot_token = forms.CharField(required=True)
|
||||
vk_username = forms.CharField(required=True)
|
||||
vk_password = forms.CharField(required=True)
|
||||
|
@@ -1,15 +1,13 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-10 17:20
|
||||
# Generated by Django 2.1.5 on 2019-01-19 05:35
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import picklefield.fields
|
||||
import yamlfield.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
@@ -32,12 +30,13 @@ class Migration(migrations.Migration):
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(max_length=32)),
|
||||
('chat_id', models.CharField(max_length=33)),
|
||||
('check_interval', models.DurationField()),
|
||||
('check_interval', models.DurationField(help_text='in seconds')),
|
||||
('last_check', models.DateTimeField(blank=True, null=True)),
|
||||
('last_id', picklefield.fields.PickledObjectField(blank=True, editable=False, null=True)),
|
||||
('last_id', yamlfield.fields.YAMLField(blank=True, null=True)),
|
||||
('config_id', models.PositiveIntegerField()),
|
||||
('config_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')),
|
||||
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
('lock', models.BooleanField(default=False)),
|
||||
],
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
|
@@ -1,18 +0,0 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-10 18:41
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('feeds', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='feed',
|
||||
name='lock',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
@@ -1,18 +0,0 @@
|
||||
# Generated by Django 2.1.5 on 2019-01-19 02:49
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('feeds', '0002_feed_lock'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='feed',
|
||||
name='check_interval',
|
||||
field=models.DurationField(help_text='in seconds'),
|
||||
),
|
||||
]
|
@@ -3,8 +3,8 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelatio
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from picklefield import PickledObjectField
|
||||
from telebot import TeleBot
|
||||
from yamlfield.fields import YAMLField
|
||||
|
||||
from feeds.tasks import execute_feed
|
||||
|
||||
@@ -15,7 +15,7 @@ class Feed(models.Model):
|
||||
chat_id = models.CharField(max_length=33)
|
||||
check_interval = models.DurationField(help_text='in seconds')
|
||||
last_check = models.DateTimeField(null=True, blank=True)
|
||||
last_id = PickledObjectField(null=True, blank=True)
|
||||
last_id = YAMLField(null=True, blank=True)
|
||||
lock = models.BooleanField(default=False)
|
||||
|
||||
config_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||
|
@@ -1,5 +1,6 @@
|
||||
from django.utils import timezone
|
||||
from telebot import TeleBot
|
||||
from djconfig import config
|
||||
|
||||
from config.celery import app
|
||||
|
||||
@@ -15,7 +16,7 @@ def execute_feed(feed_pk):
|
||||
feed.lock = True
|
||||
feed.save()
|
||||
|
||||
bot = TeleBot('450146961:AAFcb9tyIiKAi6BHR1ZYfWuTEkYjhO3xEFE')
|
||||
bot = TeleBot(config.feed_bot_token)
|
||||
feed.last_id = feed.config.execute(bot, feed.chat_id, feed.last_id)
|
||||
feed.last_check = timezone.now()
|
||||
feed.save()
|
||||
|
@@ -16,7 +16,18 @@
|
||||
<h4>General options</h4>
|
||||
{% bootstrap_form feed_form layout='horizontal' %}
|
||||
{% if feed %}
|
||||
Last check: {{ feed.last_check }}
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 col-form-label" for="id_feed-last_check">Last check</label>
|
||||
<div class="col-md-9">
|
||||
<input type="text" value="{{ feed.last_check }}" class="form-control" placeholder="Last check" title="" id="id_feed-last_check" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label class="col-md-3 col-form-label" for="id_feed-last_id">Last id</label>
|
||||
<div class="col-md-9">
|
||||
<textarea class="form-control" placeholder="Last id" id="id_feed-last_id" disabled>{{ feed.last_id }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<hr>
|
||||
<h4>Module options</h4>
|
||||
|
Reference in New Issue
Block a user