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"))
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
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})
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
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))