Ejemplo n.º 1
0
def imdb_person_data(request, pid, id):
    try:
        from release_parser.imdb import imdb_person_data
        from news.views import cut_description

        if request.user.is_superuser:
            # киноинфо
            person = Person.objects.get(pk=pid)
            person.iid = id
            person.save()
            # киноафиша
            afisha_person = AfishaPersons.objects.using('afisha').get(pk=person.kid)
            afisha_person.imdb = id
            afisha_person.save()

            result = imdb_person_data(id)

            country_exist = person.country_id if person.country else 0

            try:
                country = Country.objects.get(name_en=result['country'])
                result['country'] = country.id
            except Country.DoesNotExist:
                result['country'] = country_exist

            sex = [
                {'id': 0, 'name': 'Нет'},
                {'id': 1, 'name': 'М'},
                {'id': 2, 'name': 'Ж'},
            ]

            result['url'] = 'http://www.imdb.com/name/nm%s/bio' % id
            result['birth'] = str(result['birth'])
            result['countries'] = list(Country.objects.all().values('id', 'name').order_by('name'))
            result['person_sex'] = person.male
            result['sex'] = sex
            result['short_bio'] = cut_description(result['bio'], True, 400)
            result['status'] = True
            result['pid'] = pid
            result['imdb_id'] = id
            
            return simplejson.dumps(result)

        return simplejson.dumps({})
    except Exception as e:
        open('errors.txt','a').write('%s * (%s)' % (dir(e), e.args))
Ejemplo n.º 2
0
def torrents_listing(request, source):
    from slideblok.views import releasedata
    from news.views import cut_description
    from movie_online.IR import check_int_rates_inlist
    from release_parser.func import get_file_modify_datetime

    source = ImportSources.objects.get(pk=source)

    today = datetime.datetime.now().date()
    yesterday = today - datetime.timedelta(days=1)

    file_add = 'xml' if source.url == 'http://rutracker.org/' else 'html'
    file_path = '%s__%s__films.xml' % (file_add, source.dump)
    parser_time = get_file_modify_datetime(settings.SUCCESS_LOG_PATH, file_path)
    parser_time = parser_time + datetime.timedelta(hours=3)

    release, new, rate = (None, None, None)

    release_filter = {
        0: {'id': 0, 'name': u'ВСЕ'},
        1: {'id': 1, 'name': u'Кинопрокат'},
        2: {'id': 2, 'name': u'Прочие'},
    }

    new_filter = {
        0: {'id': 0, 'name': u'ВСЕ'},
        1: {'id': 1, 'name': u'Новые'},
    }

    rate_filter = [u'ВСЕ',]


    if request.POST:
        if 'checker' in request.POST:
            checker = request.POST.getlist('checker')
            if checker:
                SourceFilms.objects.filter(source_obj=source, pk__in=checker).update(rel_ignore=True)
            return HttpResponseRedirect(reverse('torrents_listing', kwargs={'source': source.pk}))
        else:
            release = request.POST.get('release')
            new = request.POST.get('new')
            rate = request.POST.get('rate')
    

    kids = list(SourceFilms.objects.filter(source_obj=source, rel_ignore=False).values_list('kid', flat=True))

    rates = check_int_rates_inlist(kids)
    rates_tmp = set([i['int_rate'] for i in rates.values() if i['int_rate']])
    for i in rates_tmp:
        rate_filter.append(i)

    if rate:
        try:
            rate = int(rate)
        except ValueError:
            rate = u'ВСЕ'
    if release:
        release = int(release)
    if new:
        new = int(new)
    sess_filter = request.session.get('torrents_listing_filter',{})

    if rate == None and release == None and new == None:
        sess_filter = request.session.get('torrents_listing_filter',{})
        if sess_filter:
            rate = sess_filter['rate']
            release = sess_filter['release']
            new = sess_filter['new']
        else:
            new = 1


    if not new:
        source_films = SourceFilms.objects.filter(source_obj=source, rel_ignore=False)
    elif new == 1:
        source_films = SourceFilms.objects.filter(source_obj=source, extra='new', rel_ignore=False)


    tmp_date = datetime.datetime(3000,1,1)

    films = {}
    for i in source_films:
        new = True if i.extra == 'new' else False
        films[i.kid] = {'source_id': i.source_id, 'new': new, 'pk': i.id, 'release': tmp_date, 'kid': i.kid}

    for i in list(Film.objects.using('afisha').filter(pk__in=films.keys(), date__gte=datetime.datetime(1900,1,1)).values('id', 'date')):
        films[i['id']]['release'] = i['date']

    films_sorted = sorted(films.values(), key=operator.itemgetter('release'), reverse=True)

    page = request.GET.get('page')
    try:
        page = int(page)
    except (ValueError, TypeError):
        page = 1
    
    p, page = pagi(page, films_sorted, 100)

    films_ids = {}
    for i in p.object_list:
        films_ids[i['kid']] = {}

    torrents = {}
    for i in Torrents.objects.filter(film__in=films_ids.keys()).exclude(path=None):
        if not torrents.get(i.film):
            torrents[i.film] = {'0': None, '1': None, '2': None}
        q = i.quality_avg if i.quality_avg else '1'
        torrents[i.film][q] = i

    data_tmp = releasedata(films_ids, {}, persons=False, likes=False, trailers=False, reviews=False, poster_size='small')

    upd = []

    data = []
    for i in data_tmp:      
        torrent = torrents.get(i['id'])
        f = films.get(i['id'])
        txt_cut = cut_description(i['descript'], True, 150)
        i['descript_cut'] = txt_cut
        i['descript'] = ''
        i['new'] = f['new']
        i['source_id'] = f['pk']
        i['torrent'] = torrent

        if not i['release_date']:
            i['release_date'] = datetime.datetime(3000,1,1)

        if source.url == 'http://cinemate.cc/':
            i['source_url'] = u'http://cinemate.cc/movie/%s/' % f['source_id']
        elif source.url == 'http://rutracker.org/':
            i['source_url'] = u'http://rutracker.org/forum/viewtopic.php?t=%s' % f['source_id']

        if f['new']:
            upd.append(f['pk'])
        
        next = True

        if release == 1 and i['release_date'].year == 3000:
            next = False
        elif release == 2 and i['release_date'].year < 3000:
            next = False
        
        if next:
            if rate:
                if rate == u'ВСЕ' or rate == int(i['rate']):
                    data.append(i)
            else:
                data.append(i)

    films = sorted(data, key=operator.itemgetter('release_date'), reverse=True)

    SourceFilms.objects.filter(pk__in=upd).update(extra=None)

    request.session['torrents_listing_filter'] = {'rate': rate, 'new': new, 'release': release}

    return render_to_response('kinoafisha/torrents_listing.html', {'data': films, 'source': source, 'p': p, 'page': page, 'release_filter': release_filter.values(), 'release': release, 'new_filter': new_filter.values(), 'new': new, 'rate_filter': rate_filter, 'rate': rate, 'parser_time': parser_time, 'today': today, 'yesterday': yesterday}, context_instance=RequestContext(request))
Ejemplo n.º 3
0
def get_mailru_test(request):
    from api.views import film_poster2
    from news.views import cut_description

    source = ImportSources.objects.get(url='https://afisha.mail.ru/')

    html = u'''
        <link rel="stylesheet" href="http://kinoinfo.ru/static/base/css/style.css" type="text/css" media="screen" />
        <table class="modern_tbl">
        <tr>
            <th>Релиз</th>
            <th></th>
            <th>Фильм</th>
            <th>Аннотация</th>
            <th>Постер</th>
            <th>Источник</th>
        </tr>'''

    kids = list(
        SourceReleases.objects.filter(source_obj=source).values_list(
            'film__kid', flat=True))

    descriptions = {}
    for i in list(
            Film.objects.using('afisha').filter(pk__in=kids).values(
                'pk', 'description')):
        if i['description']:
            d = cut_description(i['description'], True, 200)
            descriptions[i['pk']] = d

    poster_obj = Objxres.objects.using('afisha').select_related(
        'extresid').filter(objtypeid=301, objpkvalue__in=kids)
    posters = {}
    for p in poster_obj:
        if posters.get(p.objpkvalue):
            posters[p.objpkvalue].append(p)
        else:
            posters[p.objpkvalue] = [p]

    for i in list(
            SourceReleases.objects.filter(source_obj=source).values(
                'release', 'film__source_id', 'film__extra', 'film__text',
                'film__kid', 'film__name').order_by('release')):
        poster = posters.get(i['film__kid'], [])
        poster_path = film_poster2(poster, 'small')

        mailru_pic = ''
        if i['film__extra']:
            mailru_pic = u'<a href="%s" target="_blank"><img src="%s" width="100" /></a>' % (
                i['film__extra'], i['film__extra'])

        mailru_link = u'<a href="%scinema/movies/%s/" target="_blank">перейти</a>' % (
            source.url, i['film__source_id'])

        kinoinfo_link = u'<a href="http://kinoinfo.ru/film/%s/" target="_blank">%s</a>' % (
            i['film__kid'], i['film__name'])
        kinoinfo_pic = u'<div style="width: 100px; height: 150px; background: #CCC;"></div>'
        if poster_path:
            kinoinfo_pic = u'<img src="%s" width="100" />' % poster_path

        kinoinfo_pic = u'<a href="http://posters.kinoafisha.ru/loadtrailers18/detalfilms.php?id=%s&ix=5507931&act=posters&profile=%s" target="_blank">%s</a>' % (
            i['film__kid'], request.user.id, kinoinfo_pic)

        desc = descriptions.get(i['film__kid'], '')
        if desc:
            desc = u'<div style="background: #e5ffe5;">%s</div>' % desc

        txt = i['film__text'] if i['film__text'] else ''
        html += u'''<tr>
            <td>%s</td>
            <td>%s</td>
            <td>%s</td>
            <td>%s%s</td>
            <td>%s</td>
            <td>%s</td>
            </tr>''' % (i['release'], kinoinfo_pic, kinoinfo_link, desc, txt,
                        mailru_pic, mailru_link)

    html += u'</table>'

    return HttpResponse(str(html.encode('utf-8')))
Ejemplo n.º 4
0
def answers_admin(request):

    lang = get_language()

    all_answers_ids = {}
    for i in list(
            News.objects.filter(
                reader_type='23',
                translation_for=None).order_by('-dtime').values(
                    'pk', 'qanswers')):
        all_answers_ids[i['pk']] = i['qanswers']

    page = request.GET.get('page')
    try:
        page = int(page)
    except (ValueError, TypeError):
        page = 1
    p, page = pagi(page, all_answers_ids.keys(), 8)

    answers_ids = {}
    for i in list(
            News.objects.filter(pk__in=p.object_list,
                                reader_type='23').order_by('-dtime').values(
                                    'pk', 'parent')):
        answers_ids[i['pk']] = i['parent']

    q_ids = {}
    for i in list(
            News.objects.filter(
                pk__in=answers_ids.values(),
                reader_type='22',
                translation_for=None).distinct('pk').order_by('-dtime').values(
                    'questionanswer', 'pk')):
        if i['questionanswer']:
            q_ids[i['pk']] = i['questionanswer']

    answers = News.objects.select_related(
        'autor',
        'language').filter(pk__in=answers_ids.keys()).order_by('-dtime')

    langs = [l[0] for l in settings.LANGUAGES]

    profiles = []
    ids = []
    translation = {}
    for i in answers:
        profiles.append(i.autor)
        ids.append(i.id)
        default_langs = {}
        for lg in langs:
            default_langs[lg] = False
        translation[i.id] = default_langs
        translation[i.id][i.language.code] = True

    for i in list(
            News.objects.filter(translation_for__in=ids,
                                reader_type='23').values(
                                    'translation_for', 'language__code')):
        translation[i['translation_for']][i['language__code']] = True

    peoples = org_peoples(set(profiles), dic=True)

    data = []
    for i in answers:
        author = peoples.get(i.autor.user_id)

        text = cut_description(i.text, True, 60)

        qid = q_ids.get(i.parent_id)
        aid = all_answers_ids.get(i.id)

        translation_languages = translation.get(i.id, [])

        data.append({
            'id': aid,
            'qid': qid,
            'dtime': i.dtime,
            'text': text,
            'author': author,
            'lang': i.language.code,
            'translation': translation_languages,
            'parent': i.parent_id
        })

    vid = 99 if request.domain == '0.0.1:8000' else 95

    return render_to_response('imiagroup/question_answer.html', {
        'vid': vid,
        'data': data,
        'p': p,
        'page': page,
        'lang': lang,
        'qtype': 'admin',
        'qa_list_type': 'answers'
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 5
0
def question_answer(request, tag=None, qtype=None):

    lang = get_language()

    do_query = True
    filter = {'reader_type': '22', 'language__code': lang}
    if tag:
        tag = tag.encode('utf-8')
        filter['tags__name'] = tag
        del filter['language__code']
    elif qtype:
        if qtype in ('with', 'without'):
            if qtype == 'with':
                #query_result = list(News.objects.filter(Q(parent_rel__language__code=lang) | Q( translation_for__parent_rel__language__code=lang), language__code=lang, reader_type='22').distinct('pk').values('questionanswer', 'pk'))

                query_result_1 = list(
                    News.objects.filter(
                        parent_rel__language__code=lang,
                        language__code=lang,
                        reader_type='22').distinct('pk').values(
                            'questionanswer', 'pk'))
                query_result_2 = list(
                    News.objects.filter(
                        translation_for__parent_rel__language__code=lang,
                        language__code=lang,
                        reader_type='22').distinct('pk').values(
                            'questionanswer', 'pk'))

                query_result = query_result_1 + query_result_2

                do_query = False
            elif qtype == 'without':
                query_result_tmp = list(
                    News.objects.filter(
                        language__code=lang, reader_type='22').exclude(
                            translation_for__parent_rel__language__code=lang).
                    distinct('pk').values_list('pk', flat=True))
                query_result = list(
                    News.objects.filter(pk__in=query_result_tmp).exclude(
                        parent_rel__language__code=lang).distinct('pk').values(
                            'questionanswer', 'pk'))
                do_query = False

        else:
            raise Http404

    if do_query:
        query_result = list(
            News.objects.filter(**filter).distinct('pk').values(
                'questionanswer', 'pk'))

    q_ids = {}
    for i in query_result:
        if i['questionanswer']:
            q_ids[i['pk']] = i['questionanswer']

    questions = News.objects.select_related(
        'autor', 'language').filter(pk__in=q_ids.keys()).order_by('-dtime')

    page = request.GET.get('page')
    try:
        page = int(page)
    except (ValueError, TypeError):
        page = 1
    p, page = pagi(page, questions, 8)

    profiles = []
    ids = []
    questionanswers = []
    for i in p.object_list:
        profiles.append(i.autor)
        ids.append(i.id)
        qas = q_ids.get(i.id)
        if qas:
            questionanswers.append(qas)

    answers = {}
    for i in list(
            News.objects.filter(parent__questionanswer__id__in=questionanswers,
                                reader_type='23',
                                language__code=lang).values(
                                    'pk', 'parent__questionanswer')):
        if not answers.get(i['parent__questionanswer']):
            answers[i['parent__questionanswer']] = 0
        answers[i['parent__questionanswer']] += 1

    peoples = org_peoples(set(profiles), dic=True)

    tags_list = set(
        list(
            NewsTags.objects.filter(news__reader_type='22').values_list(
                'name', flat=True)))

    tags_all = {}
    for i in list(
            NewsTags.objects.filter(news__pk__in=ids).values(
                'name', 'news__pk')):
        if not tags_all.get(i['news__pk']):
            tags_all[i['news__pk']] = []
        tags_all[i['news__pk']].append(i['name'])

    data = []
    for i in p.object_list:
        author = peoples.get(i.autor.user_id)
        tags = tags_all.get(i.id)

        text = cut_description(i.text, True, 60)

        qid = q_ids.get(i.id)

        answers_count = answers.get(qid, 0)

        data.append({
            'id': qid,
            'dtime': i.dtime,
            'subject': i.title,
            'text': text,
            'author': author,
            'tags': tags,
            'lang': i.language.code,
            'answers': answers_count,
            'views': i.views,
        })

    vid = 99 if request.domain == '0.0.1:8000' else 95

    return render_to_response('imiagroup/question_answer.html', {
        'vid': vid,
        'data': data,
        'p': p,
        'page': page,
        'tags_list': tags_list,
        'lang': lang,
        'qtype': qtype,
        'qa_list_type': 'questions'
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 6
0
def question_answer_admin(request):

    lang = get_language()

    q_ids = {}
    for i in list(
            News.objects.filter(
                reader_type='22',
                translation_for=None).distinct('pk').order_by('-dtime').values(
                    'questionanswer', 'pk')):
        if i['questionanswer']:
            q_ids[i['pk']] = i['questionanswer']

    questions = News.objects.select_related(
        'autor', 'language').filter(pk__in=q_ids.keys()).order_by('-dtime')

    page = request.GET.get('page')
    try:
        page = int(page)
    except (ValueError, TypeError):
        page = 1
    p, page = pagi(page, questions, 8)

    langs = [l[0] for l in settings.LANGUAGES]

    profiles = []
    ids = []
    translation = {}
    for i in p.object_list:
        profiles.append(i.autor)
        ids.append(i.id)
        default_langs = {}
        for lg in langs:
            default_langs[lg] = False
        translation[i.id] = default_langs
        translation[i.id][i.language.code] = True

    for i in list(
            News.objects.filter(translation_for__in=ids).values(
                'translation_for', 'language__code')):
        translation[i['translation_for']][i['language__code']] = True

    peoples = org_peoples(set(profiles), True)

    tags_list = set(
        list(
            NewsTags.objects.filter(news__reader_type='22').values_list(
                'name', flat=True)))

    tags_all = {}
    for i in list(
            NewsTags.objects.filter(news__pk__in=ids).values(
                'name', 'news__pk')):
        if not tags_all.get(i['news__pk']):
            tags_all[i['news__pk']] = []
        tags_all[i['news__pk']].append(i['name'])

    data = []
    for i in p.object_list:
        author = peoples.get(i.autor.user_id)
        tags = tags_all.get(i.id)

        text = cut_description(i.text, True, 60)

        qid = q_ids.get(i.id)

        translation_languages = translation.get(i.id, [])

        data.append({
            'id': qid,
            'dtime': i.dtime,
            'subject': i.title,
            'text': text,
            'author': author,
            'tags': tags,
            'lang': i.language.code,
            'translation': translation_languages,
        })

    vid = 99 if request.domain == '0.0.1:8000' else 95

    return render_to_response('imiagroup/question_answer.html', {
        'vid': vid,
        'data': data,
        'p': p,
        'page': page,
        'tags_list': tags_list,
        'lang': lang,
        'qtype': 'admin',
        'qa_list_type': 'questions'
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 7
0
def forum_send_msg(request,
                   topic,
                   parent,
                   name,
                   email,
                   subject,
                   text,
                   anonim,
                   mtype,
                   preview=False,
                   edit=['0', '0']):
    try:
        from news.views import cut_description

        mtypes = {
            u'1': 1,  # Новая тема
            u'2': 2,  # Новое сообщение
            u'3': 3,  # Ответ на сообщение
        }

        name_error = ''
        text_error = ''
        name = name.strip()[:25]
        email = email.strip()[:50]
        text = text.strip()
        subject = subject.strip()[:128]

        if not name:
            name_error = u'Слишком короткое имя (не менее 1 символа)'
        if not text and not subject:
            text_error = u'Слишком короткая тема или сообщение'

        subj_end = ''
        if subject:
            subject, subj_end = cut_description(subject, False, 47, True)
        else:
            subject = text[:128]
            subject = cut_description(subject, False, 47)

        if subj_end:
            text = '%s %s' % (subj_end, text)

        mtype = mtypes.get(mtype)

        subject = html_entities_to_tags(subject)
        text = html_entities_to_tags(text)

        text = BeautifulSoup(text, from_encoding="utf-8").text
        subject = BeautifulSoup(subject, from_encoding="utf-8").text
        name = BeautifulSoup(name, from_encoding="utf-8").text
        email = BeautifulSoup(email, from_encoding="utf-8").text

        if mtype:

            if not name_error and not text_error:

                tmp_txt = text[:len(subject)]
                if tmp_txt == subject:
                    text = text[len(subject):]

                text = text.replace('\n', '<br />')

                if edit[0] == '0':
                    check_user = True if anonim or not request.profile.kid else False

                    error = False
                    if check_user:
                        try:
                            RegisteredUsers.objects.using('afisha').get(
                                nickname=name)
                            error = True
                        except RegisteredUsers.DoesNotExist:
                            error = False
                        except RegisteredUsers.MultipleObjectsReturned:
                            error = True

                        if not error:
                            try:
                                user = User.objects.get(
                                    first_name=name, profile__auth_status=True)
                                error = True
                            except User.DoesNotExist:
                                error = False

                else:
                    error = False

                if error:
                    name_error = u'В базе есть такой пользователь, <a class="kinoafisha_button">авторизуйтесь</a> или укажите другое имя!'
                    return simplejson.dumps({
                        'status': True,
                        'nerr': name_error,
                        'terr': ''
                    })
                else:
                    # если новое сообщение
                    if edit[0] == '0':
                        if request.profile.kid:
                            # зарегистрированный юзер
                            kid = request.profile.kid
                            if not anonim:
                                name = ''
                        else:
                            # новый/неавторизованный юзер с уникальным никнэймом
                            anonim = False

                            null_date = datetime.date(1900, 1, 1)
                            reg_obj = RegisteredUsers.objects.using(
                                'afisha').create(
                                    nickname='Bk276lPLIO83hjsdfJsdjj23',
                                    date_of_birth=null_date,
                                )

                            kid = reg_obj.id

                            reg_obj.nickname = name
                            reg_obj.save()

                            name = ''

                            request.profile.kid = kid
                            request.profile.save()

                    # редактирование
                    else:
                        try:
                            t = WFOpinion.objects.using(
                                'afisha').select_related('user').get(
                                    pk=edit[1])
                        except WFOpinion.DoesNotExist:
                            return simplejson.dumps({'status': False})
                        else:
                            if t.user_id == request.profile.kid:
                                kid = request.profile.kid
                                name = t.nick if t.nick else t.user.nickname

                    if preview:

                        html = ''
                        for key, val in FORUM_SMILES.iteritems():
                            text = text.replace(
                                key,
                                '<img src="%sbase/images/forums/smiles/sk_%s.gif"/>'
                                % (settings.STATIC_URL, val['id']))
                            subject = subject.replace(
                                key,
                                '<img src="%sbase/images/forums/smiles/sk_%s.gif"/>'
                                % (settings.STATIC_URL, val['id']))

                        date_now = datetime.datetime.now()
                        date_msg = tmp_date(date_now, "d E Y")

                        if name:
                            nick = name
                        else:
                            nick = ''
                            if kid:
                                try:
                                    nick = RegisteredUsers.objects.using(
                                        'afisha').get(pk=kid).nickname
                                except RegisteredUsers.DoesNotExist:
                                    pass

                        html += u'''
                            <div>
                            <div class="fmsg_h"><b>%s</b><p style="color: #FF5C33;">ПРЕДПРОСМОТР СООБЩЕНИЯ</p></div>
                            <div class="fmsg_b"><b>%s</b> <span>%s</span></div>
                            <div class="fmsg_f"></div>
                            </div>
                            ''' % (nick, subject, text)

                        return simplejson.dumps({
                            'status': True,
                            'content': html
                        })
                    else:

                        if edit[0] == '0':
                            newmsg = create_forum_msg(parent, topic, mtype,
                                                      kid, anonim, subject,
                                                      text, name, email)
                            vcount = 0 if mtype == 1 else 1
                            WFStat.objects.using('afisha').create(
                                opinion=newmsg.id, count=vcount)
                            WFUser.objects.using('afisha').create(
                                user=kid, opinion=newmsg.id)
                            request.session['wf_new_msg'] = newmsg.id
                        elif edit[0] == '1' and t.user_id == kid:
                            t.subject = subject
                            t.text = text
                            t.save()
                            newmsg = t

                        ref = request.META.get('HTTP_REFERER',
                                               '').split('?')[0]
                        mobile = 'm/' if '/m/' in ref else ''

                        redirect_to = '/women/%s' % mobile
                        next = ''
                        if topic:
                            redirect_to = '/women/%stopic/%s/' % (mobile,
                                                                  topic)
                            next = topic
                        if mtype == 1 and newmsg:
                            redirect_to = '/women/%stopic/%s/' % (mobile,
                                                                  newmsg.id)
                            next = newmsg.id

                        new_id = ''
                        if mtype in (2, 3) and newmsg:
                            new_id = newmsg.id

                        return simplejson.dumps({
                            'status': True,
                            'redirect_to': redirect_to,
                            'mid': new_id,
                            'next': next
                        })
            else:
                return simplejson.dumps({
                    'status': True,
                    'nerr': name_error,
                    'terr': text_error
                })

    except Exception as e:
        open('errors.txt', 'a').write('%s * (%s)' % (dir(e), e.args))
Ejemplo n.º 8
0
        def printTree(L, new, readed_msg, data, margin=0):
            for i in L:
                if isinstance(i, list):
                    data = printTree(i, new, readed_msg, data, margin)
                else:
                    if int(i.parent) == new:
                        margin = 0
                    else:
                        idnt = tmp_dict.get(i.parent)
                        if not is_mobile:
                            if not idnt:
                                margin = 15
                            else:
                                margin = idnt + 15

                    tmp_dict[i.id] = margin

                    idn = '<div class="nxt" style="margin-left: %spx;"></div>' % margin

                    msg_date = i.date.date()
                    time_nav = ''
                    time_txt = ''
                    if msg_date == now:
                        time_nav = u'mt1'
                        time_txt = u'Добавлено сегодня'
                    elif msg_date == (now - datetime.timedelta(days=1)):
                        time_nav = u'mt2'
                        time_txt = u'Добавлено вчера'
                    elif msg_date == (now - datetime.timedelta(days=2)):
                        time_nav = u'mt3'
                        time_txt = u'Добавлено позавчера'
                    elif msg_date < (
                            now - datetime.timedelta(days=2)) and msg_date >= (
                                now - datetime.timedelta(days=6)):
                        time_nav = u'mt4'
                        time_txt = u'Добавлено в течении недели'
                    elif msg_date < (now - datetime.timedelta(days=6)):
                        time_nav = u'mt5'
                        time_txt = u'Добавлено давно'

                    if i.id != int(val) and i.id not in readed_msg:
                        time_nav = u'mt6'
                        data['2'] = True

                    if time_txt:
                        time_nav = u'<div id="%s" title="%s"></div>' % (
                            time_nav, time_txt)

                    try:
                        nick = i.nick if i.nick else i.user.nickname
                    except AttributeError:
                        nick = ''

                    kinoinfo_user_id = None
                    if i.user:
                        kinoinfo_user_id = profiles.get(i.user.id)

                    subject = cut_description(
                        i.subject, True,
                        48) if len(i.subject) > 58 else i.subject
                    short_txt = cut_description(i.text, False, 80)

                    minus_txt = ''
                    if short_txt:
                        if not is_mobile:
                            if len(short_txt) >= 80:
                                short_txt = ' title="%s..."' % short_txt
                            else:
                                short_txt = ' title="%s"' % short_txt
                    else:
                        short_txt = ''
                        minus_txt = ' (-)'

                    subject = '%s%s' % (subject, minus_txt)

                    data['1'] += u'<tr href="#%s" class="branch"><td>' % i.id
                    if request.user.is_superuser and not is_mobile:
                        if i.deleted:
                            data[
                                '1'] += u'<div class="wf_reuse wfr item_ho" id="wfr_%s" title="Восстановить"></div>' % i.id
                        else:
                            data[
                                '1'] += u'<div class="wf_del wfd item_ho" id="wfd_%s" title="Удалить"></div>' % i.id

                    if kinoinfo_user_id and request.user.is_superuser:
                        nick_html = u'<a href="http://ya.vsetiinter.net/user/profile/%s/" target="_blank">%s</a>' % (
                            kinoinfo_user_id, nick)
                    else:
                        nick_html = nick

                    data['1'] += u'''
                        <div class="tlink item_ho"%s>%s%s%s</div>
                        </td>
                        <td><div>%s<span>%s</span></div></td>
                        <td><div>%s</div></td>
                        </tr>
                        ''' % (short_txt, idn, time_nav, subject,
                               i.date.strftime('%d.%m'),
                               i.date.strftime('%H:%M'), nick_html)
            return data