New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

django-rss-xml-parser

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-rss-xml-parser

This parser is intended for RSS/XML that does not communicate the standard rfc5005

  • 0.4
  • PyPI
  • Socket score

Maintainers
1

Django rss/xml parser(django_rss_xml)

This parse is intended for XML / RSS, which does not conform to the standard: https://tools.ietf.org/html/rfc5005

Use https://pypi.python.org/pypi/feedparser for standard RSS

install

pip install django-rss_xml-parser

add to settings

INSTALLED_APPS = [
    ...
    'django_rss_xml',
    ...
    ]

usage

  1. create mappers
afisha = {
    "elements": "event",
    "items_to": {"id__attr": "event_id", "title": "title", "text": "text"}
}

yandex = {
    "elements": "item",
    "items_to": {"title": "title", "description": "text"}
}

kassir = {"elements": "item"}
...

  1. create models
from django.db import models
from django.utils.translation import ugettext as _
from django.utils.timezone import now

class Tags(models.Model):
    tag = models.CharField(max_length=50, verbose_name=_("Tag"))

class RssModel(models.Model):
    event_id = models.IntegerField(verbose_name=_("event ID"), null=True)
    title = models.CharField(max_length=550, verbose_name=_("Title"), null=True)
    text = models.TextField(verbose_name=_("Description"), null=True)
    time = models.DateTimeField(verbose_name=_("Time and Date"), default=now, blank=True)
    tags = models.ForeignKey(Tags, on_delete=models.CASCADE, verbose_name=_('Tags'), null=True, blank=True)

  1. add in view
rss_rules = {"uri": 'rss/data/afisha.xml', "rule": afisha}
OR
rss_rules = {"uri": 'https://news.yandex.ru/auto.rss', "rule": yandex}

example:

from django.views.generic import TemplateView
from .rss_mapper import kassir, afisha, yandex
from django_rss_xml.rss_parser import RSS
from .models import RssModel


class RSSView(TemplateView, RSS):
    template_name = "rss/rss.html"
    rss_rules = {"uri": 'rss/data/afisha.xml', "rule": afisha}

    def get_context_data(self, **kwargs):
        context = super(RSSView, self).get_context_data(**kwargs)
        context['rss_obj'] = self.rss_to_object()
        context['rss_m'] = self.rss_to_model(RssModel)
        return context

Running tests

python manage.py test django_rss_xml

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc