# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import datetime
+import sys
+
from django.core.management.base import BaseCommand
+from django.db.models import Q
+from django.utils.timezone import now
from ...models import Channel
class Command(BaseCommand):
+ def add_arguments(self, parser):
+ parser.add_argument('--channel', dest='channel', metavar='CHANNEL', type=str)
+ parser.add_argument('--delay', dest='delay', metavar='DELAY',
+ type=int, default=3600)
+
def handle(self, *args, **options):
- for channel in Channel.objects.all():
+ qs = Channel.objects.all()
+ if options.get('channel'):
+ qs = qs.filter(Q(title__icontains=options.get('channel')) |
+ Q(channel_url__icontains=options.get('channel')))
+ if options.get('delay'):
+ qs = qs.filter(last_update_timestamp__lt=now() -
+ datetime.timedelta(seconds=options.get('delay')))
+ for channel in qs:
+ if options.get('verbosity'):
+ sys.stderr.write('Updating %s\n' % channel)
channel.update()
+ channel.save()