Exemple #1
0
def save_sms_sources(request):
    '''
    Парсер файла sms.txt
    '''
    # получаю объект для русского языка
    lang = Language.objects.get(pk=1)
    list_all = []
    sms_file = open(rel('sources/sms.txt'), 'r')
    # получаю данные из файла
    for line in sms_file.read().split('\n'):
        listt = []
        for i, l in enumerate(line.split('\t')):
            if i == 1: listt.append(capit(low(l)))
            elif i == 2: listt.append(l.split(' ')[0])
            elif i == 4: listt.append(l)
        # складываю данные в список
        list_all.append(listt)
    sms_file.close()
    # получаю объект для источника sms
    source = ImportSources.objects.get(source='SMS')
    # иду по списку с данными
    for l in list_all:
        try:
            if l[1] != 'ЗАКРЫТ':
                # очищаю название от спец.символов
                slug_city = low(del_separator(l[1]))
                # ищу по очищенному названию
                try: city = City.objects.get(name__name=slug_city)
                except City.DoesNotExist:
                    # если не найдено, то ищу по названию из источника
                    try: city = City.objects.get(name__name=l[1])
                    except City.DoesNotExist:
                        # если не найдено, то ищу по названию из источника в нижнем регистре
                        try: city = City.objects.get(name__name=capit(low(l[1])))
                        except City.DoesNotExist: city = None
                if city:
                    # очищаю название от спец.символов
                    slug_cinema = low(del_separator(l[0]))
                    # ищу по очищенному названию
                    try: cinema = Cinema.objects.get(name__name=slug_cinema, city=city.id)
                    except Cinema.DoesNotExist:
                        # если не найдено, то ищу по названию из источника
                        try: cinema = Cinema.objects.get(name__name=l[0], city=city.id)
                        except Cinema.DoesNotExist: cinema = None
                    if cinema:
                        # получаю/создаю залы для этого кинотеатра в этом городе
                        name1 = create_hallname(1, lang, 'без указания зала')
                        name2 = create_hallname(2, lang, 'безуказаниязала')
                        hall = create_hall((name1, name2), 0, 0, cinema)
                        # записываю url источника в БД, для последующего получения данных о сеансах
                        try: HallsSources.objects.get(id_hall=hall, source=source, url_hall_sources=l[2])
                        except HallsSources.DoesNotExist: HallsSources(id_hall=hall, source=source, url_hall_sources=l[2]).save()
                    else:
                        # если не найден кинотеатр, то запись в лог
                        logger(**{'event': 2, 'code': 2, 'bad_obj': l[0], 'obj1': l[1], 'obj2': l[2], 'extra': city.id})
                else:
                    # если не найден город, то запись в лог
                    logger(**{'event': 2, 'code': 1, 'bad_obj': capit(low(l[1])), 'obj2': l[2]})
        except IndexError: pass
    return HttpResponseRedirect(reverse("main_kai"))
Exemple #2
0
def create_news(request, tags, name, text, reader_type, nick=0, extra=None, visible=None):

    profile = request.profile
    current_site = request.current_site
    subdomain = request.subdomain if request.subdomain else 0
    
    if current_site.domain in ('kinoinfo.ru', 'kinoafisha.ru'):
        subdomain = 0

    language = None
    if current_site.domain == 'imiagroup.com.au':
        try: language = Language.objects.get(code=request.current_language)
        except Language.DoesNotExist: pass
    
    tags_list = []
    for i in tags:
        tag = i.strip()
        t_list = (tag, capit(tag), low(tag))
        tag_obj = None
        for t in t_list:
            try:
                tag_obj = NewsTags.objects.get(name=t)
                break
            except NewsTags.DoesNotExist: pass

        if not tag_obj:
            tag_obj = NewsTags.objects.create(name=t_list[0])
            
        tags_list.append(tag_obj)
    
    if visible is None:
        visible = True if text else False
    
    news = News.objects.create(
        title = name, 
        autor = profile,
        site = current_site,
        subdomain = subdomain,
        language = language,
        text = text,
        visible = visible,
        reader_type = reader_type,
        autor_nick = nick,
        extra = extra,
    )
    
    for i in set(tags_list):
        news.tags.add(i)

    NewsTags.objects.filter(news=None).delete()

    return news
Exemple #3
0
def get_news_tags(request, id, arr):
    #try:
    news = News.objects.get(pk=id)
    if arr:
        profile = RequestContext(request).get('profile')
        is_editor = False
        try:
            org = OrganizationNews.objects.select_related('organization').get(
                news=news)
            if profile in org.organization.editors.all():
                is_editor = True
        except OrganizationNews.DoesNotExist:
            pass

        if request.user.is_superuser or is_editor or request.is_admin:
            arr = set(arr)
            tags_error = False

            tags_objs = {}
            tags_list = []
            tags = NewsTags.objects.all()
            for i in tags:
                tags_objs[i.name] = i

            for i in arr:
                t_list = (i, capit(i).decode('utf-8'), low(i).decode('utf-8'))
                tag_obj = None
                for t in t_list:
                    tag_obj = tags_objs.get(t)
                    if tag_obj:
                        break

                if not tag_obj:
                    tag_obj = NewsTags.objects.create(name=t_list[0])

                tags_list.append(tag_obj)

            org_tags = [i for i in news.tags.all()]
            for i in org_tags:
                news.tags.remove(i)

            for i in tags_list:
                news.tags.add(i)

            return simplejson.dumps({
                'status': True,
                'err': False,
                'content': sorted(arr)
            })

    return simplejson.dumps({'status': False})
Exemple #4
0
def get_name_film_obj(film):
    '''
    Получение объекта названия фильма
    '''
    # очищаю названия от формата изображения (3D, 2D ...)
    f = del_screen_type(film)
    # очищаю названия от спец.символов и привожу в нижний регистр
    f = low(del_separator(f))
    # ищу по очищенному названию
    try: name = NameProduct.objects.filter(name=f)[0]
    except IndexError:
        # если не найден, ищу по названию источника
        try: name = NameProduct.objects.filter(name=film)[0]
        except IndexError:
            # если не найден, ищу по названию источника в нижнем регистре
            try: name = NameProduct.objects.filter(name=low(film))[0]
            except IndexError:
                # если не найден, ищу по названию источника в нижнем регистре с заглавной буквы
                try: name = NameProduct.objects.filter(name=capit(film))[0]
                except IndexError: name = None
    return name
Exemple #5
0
def check_tag(tag, id):

    tags = capit(tag).decode('utf-8')
    tags = low(tag).decode('utf-8')

    obj=""

    try:
        obj = OrganizationTags.objects.get(name=tags)
        #obj = Organization.objects.get(tags__name=tags)
        debug_logs("already exists: %s " % (obj))

    except MultipleObjectsReturned:
        debug_logs("MultipleObjectsReturned: %s " % (obj))

    except ObjectDoesNotExist:
        debug_logs("ObjectDoesNotExist %s" % tags.encode('utf-8'))
        created = OrganizationTags.objects.create(name=tags, group_flag="org_name_tag")
        tag = OrganizationTags.objects.get(name=tags)
        org = Organization.objects.get(pk=id)
        org.tags.add(tag)
        debug_logs("tag %s, created %s " % (tag, created))