def Render(request, service_id): date = JalaliDate.today().__str__().replace('-', '/') week_start_date = JalaliDate.today() - timedelta( days=JalaliDate.today().weekday()) weekday_date = week_start_date this_week_days = [] for i in range(7): weekday_date.__str__().replace('-', '/') this_week_days.append(weekday_date.__str__().replace('-', '/')) weekday_date = weekday_date + timedelta(1) service = Services.objects.get(id=service_id) selected_sanses = Sans.objects.filter( time_table__id=service.timetable.id).order_by('start_time') sanses = [[], [], [], [], [], [], []] reserved_sanses = Reserves.objects.filter(date__in=this_week_days) #print(reserved_sanses) #reserved_sanses = [e.sans for e in reserved_sanses] # print(reserved_sanses) for sans in selected_sanses: is_reserved = False for reserved in reserved_sanses: if (sans.id == reserved.sans.id): is_reserved = True sanses[sans.weekday].append(SansContext(sans, is_reserved)) #print(sanses) return render(request, 'ServicePage.html', { 'service': service, 'days': sanses, 'date': date, 'user': user })
def Render(request, service_id): service = Services.objects.get(id=service_id) timetable = TimeTable.objects.get(pk=service.timetable.id) date = JalaliDate.today().__str__().replace('-', '/') week_start_date = JalaliDate.today() - timedelta( days=JalaliDate.today().weekday()) weekday_date = week_start_date this_week_days = [] for i in range(7): weekday_date.__str__().replace('-', '/') this_week_days.append(weekday_date.__str__().replace('-', '/')) weekday_date = weekday_date + timedelta(1) selected_sanses = Sans.objects.filter( time_table=service.timetable.id).order_by('start_time') print(len(selected_sanses)) days = [[], [], [], [], [], [], []] for i in range(7): for sans in selected_sanses: if sans.weekday == i: days[i].append(sans) return render( request, 'editServicePage.html', { 'service': service, 'days': days, 'date': date, 'user': user, 'categories': categories })
def RenderTimeTable(request): if request.method == 'POST': timetable_id = request.POST.get('time_table', '') service_id = int(request.POST.get('service')) date = request.POST.get('date', '') date_splited = date.split('/') day = JalaliDate(int(date_splited[0]), int(date_splited[1]), int(date_splited[2])) week_start_date = day - timedelta( days=JalaliDate.today().weekday()) weekday_date = week_start_date this_week_days = [] for i in range(7): weekday_date.__str__().replace('-', '/') this_week_days.append(weekday_date.__str__().replace('-', '/')) weekday_date = weekday_date + timedelta(1) service = Services.objects.get(id=service_id) selected_sanses = Sans.objects.filter( time_table__id=service.timetable.id).order_by('start_time') sanses = [[], [], [], [], [], [], []] reserved_sanses = Reserves.objects.filter(date__in=this_week_days) print(reserved_sanses) # reserved_sanses = [e.sans for e in reserved_sanses] # print(reserved_sanses) for sans in selected_sanses: is_reserved = False for reserved in reserved_sanses: if (sans.id == reserved.sans.id): is_reserved = True sanses[sans.weekday].append(SansContext(sans, is_reserved)) print(sanses) return render(request, 'ServicePage.html', { 'service': service, 'days': sanses, 'date': date, 'user': user }) selected_sanses = [sans for sans in selected_sanses] if (JalaliDate.today() <= day): final = set(selected_sanses).difference(set(reserved)) else: date = JalaliDate.today().__str__().replace('-', '/') day = JalaliDate().today() final = [] return render( request, 'ServicePage.html', { 'service': service, 'sanses': final, 'day_name': day.weekdayname(), 'date': date, 'user': user })
def group_sms(self, message, mobiles, yourMessageIds): api = "http://niksms.com/fa/PublicApi/GroupSms" now = JalaliDate.today() now_time = timezone.now() post_data = { 'username': self.username, 'password': self.password, 'message': message, 'numbers': mobiles, 'senderNumber': "50004307", 'sendOn': "{}/{}/{}-{}:{}".format(now.year, now.month, now.day, now_time.hour, now_time.minute), 'yourMessageIds': yourMessageIds, 'sendType': 1 } result = requests.post(api, post_data) return result
def add_global_template_variables(): return dict(today=JalaliDate.today().strftime('%A %d %B %Y'), session=session, base_url=config.get('base_url'), pictures=DBSession.query(Picture).all(), categories=DBSession.query(Category).options( joinedload('subcategory')).all())
def test_strptime(self): """ %Z not working at all """ self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361)) self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'), JalaliDate(1361)) self.assertEqual(JalaliDate.strptime(u'اریا1361گلگشت', u'اریا%Yگلگشت'), JalaliDate(1361)) current_century = int(JalaliDate.today().year / 100) * 100 self.assertEqual(JalaliDate.strptime('61', '%y'), JalaliDate(current_century + 61)) self.assertEqual(JalaliDate.strptime('61%C', '%y%C'), JalaliDate(current_century + 61)) self.assertEqual(JalaliDate.strptime(u'اریا61گلگشت', u'اریا%yگلگشت'), JalaliDate(current_century+61)) self.assertEqual(JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', u'%A %d %B %Y'), JalaliDate(month=2, day=1))
def test_year(self): """ Testing: %y Year without century as a zero padded decimal number [00, 99]. %n Year without century as a decimal number in persian form [۱, ۹۹]. %u Year without century as a zero padded decimal number in persian form [۰۱, ۹۹]. %Y Year with century as a decimal number [1-3178]. %N Year with century as a decimal number in persian form [۱-۳۱۷۸]. %O Year with century as a zero padded decimal number in persian form [۰۰۰۱-۳۱۷۸]. """ self.assertEqual(JalaliDate(1361, 6, 15).strftime('%y'), u'61') self.assertEqual(JalaliDate(1361, 6, 15).strftime('%Y'), u'1361') self.assertEqual(JalaliDate(61, 11, 5).strftime('%N'), u'۶۱') self.assertEqual(JalaliDate(61, 11, 5).strftime('%O'), u'۰۰۶۱') self.assertEqual(JalaliDate.strptime('94', '%y'), JalaliDate(1394)) self.assertEqual(JalaliDate.strptime('01', '%y'), JalaliDate(1301)) self.assertEqual(JalaliDate.strptime('00', '%y'), JalaliDate(1300)) self.assertEqual(JalaliDate.strptime(u'۹۴', '%n'), JalaliDate(1394)) self.assertEqual(JalaliDate.strptime(u'۱', '%n'), JalaliDate(1301)) self.assertEqual(JalaliDate.strptime(u'۰', '%n'), JalaliDate(1300)) self.assertEqual(JalaliDate.strptime(u'۹۴', '%u'), JalaliDate(1394)) self.assertEqual(JalaliDate.strptime(u'۰۱', '%u'), JalaliDate(1301)) self.assertEqual(JalaliDate.strptime(u'۰۰', '%u'), JalaliDate(1300)) self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%N'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۰۴', '%N'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۴', '%N'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%O'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۰۴', '%O'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۴', '%O'), JalaliDate(4, 1, 1)) this_century = JalaliDate(int(JalaliDate.today().year / 100) * 100) for i in range(99): self.assert_parse_and_format( this_century.replace(year=this_century.year + i), '%y') self.assert_parse_and_format( this_century.replace(year=this_century.year + i), '%n') self.assert_parse_and_format( this_century.replace(year=this_century.year + i), '%u') for i in range(1, 1001): self.assert_parse_and_format(JalaliDate(i), '%Y') self.assert_parse_and_format(JalaliDate(i), '%N') self.assert_parse_and_format(JalaliDate(i), '%O')
def test_year(self): """ Testing: %y Year without century as a zero padded decimal number [00, 99]. %n Year without century as a decimal number in persian form [۱, ۹۹]. %u Year without century as a zero padded decimal number in persian form [۰۱, ۹۹]. %Y Year with century as a decimal number [1-3178]. %N Year with century as a decimal number in persian form [۱-۳۱۷۸]. %O Year with century as a zero padded decimal number in persian form [۰۰۰۱-۳۱۷۸]. """ self.assertEqual(JalaliDate(1361, 6, 15).strftime('%y'), u'61') self.assertEqual(JalaliDate(1361, 6, 15).strftime('%Y'), u'1361') self.assertEqual(JalaliDate(61, 11, 5).strftime('%N'), u'۶۱') self.assertEqual(JalaliDate(61, 11, 5).strftime('%O'), u'۰۰۶۱') self.assertEqual(JalaliDate.strptime('94', '%y'), JalaliDate(1394)) self.assertEqual(JalaliDate.strptime('01', '%y'), JalaliDate(1301)) self.assertEqual(JalaliDate.strptime('00', '%y'), JalaliDate(1300)) self.assertEqual(JalaliDate.strptime(u'۹۴', '%n'), JalaliDate(1394)) self.assertEqual(JalaliDate.strptime(u'۱', '%n'), JalaliDate(1301)) self.assertEqual(JalaliDate.strptime(u'۰', '%n'), JalaliDate(1300)) self.assertEqual(JalaliDate.strptime(u'۹۴', '%u'), JalaliDate(1394)) self.assertEqual(JalaliDate.strptime(u'۰۱', '%u'), JalaliDate(1301)) self.assertEqual(JalaliDate.strptime(u'۰۰', '%u'), JalaliDate(1300)) self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%N'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۰۴', '%N'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۴', '%N'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%O'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۰۴', '%O'), JalaliDate(4, 1, 1)) self.assertEqual(JalaliDate.strptime(u'۴', '%O'), JalaliDate(4, 1, 1)) this_century = JalaliDate(int(JalaliDate.today().year/100) * 100) for i in range(99): self.assert_parse_and_format(this_century.replace(year=this_century.year+i), '%y') self.assert_parse_and_format(this_century.replace(year=this_century.year+i), '%n') self.assert_parse_and_format(this_century.replace(year=this_century.year+i), '%u') for i in range(1, 1001): self.assert_parse_and_format(JalaliDate(i), '%Y') self.assert_parse_and_format(JalaliDate(i), '%N') self.assert_parse_and_format(JalaliDate(i), '%O')
def crawling_thread(self, thread_name, start_date, q_xls): while True: if start_date < date.today(): end_date_jalali = JalaliDate.today() if JalaliDatetime.now().hour < 14: end_date_jalali = end_date_jalali - timedelta(days=1) self.crawl(start_date, end_date_jalali.todate(), q_xls) start_date = end_date_jalali.todate() with open(f'{self.excel_location}/crawlstat', 'w') as statfile: lastcheck = JalaliDatetime.now() print("last check:", file=statfile) print(lastcheck, file=statfile) print("last crawl:", file=statfile) print(end_date_jalali, file=statfile) if JalaliDatetime.now().hour < 16: time.sleep((16 - JalaliDatetime.now().hour) * 3600 + 100) else: time.sleep((40 - JalaliDatetime.now().hour) * 3600 + 100)
async def today(request: Request, iso: bool = False): arg_check(("iso", ), request.query_params.keys()) j = JalaliDate.today() g = j.todate() if iso: return {"g": g.isoformat(), "j": j.isoformat()} return { "g": { "y": g.year, "m": g.month, "d": g.day }, "j": { "y": j.year, "m": j.month, "d": j.day }, }
def test_strptime(self): """ %Z not working at all """ self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361)) self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'), JalaliDate(1361)) self.assertEqual(JalaliDate.strptime(u'اریا1361گلگشت', u'اریا%Yگلگشت'), JalaliDate(1361)) current_century = int(JalaliDate.today().year / 100) * 100 self.assertEqual(JalaliDate.strptime('61', '%y'), JalaliDate(current_century + 61)) self.assertEqual(JalaliDate.strptime('61%C', '%y%C'), JalaliDate(current_century + 61)) self.assertEqual(JalaliDate.strptime(u'اریا61گلگشت', u'اریا%yگلگشت'), JalaliDate(current_century + 61)) self.assertEqual( JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', u'%A %d %B %Y'), JalaliDate(month=2, day=1))
def post_parser(self, ctx, formatter): from khayyam import JalaliDate ctx['year'] = int(JalaliDate.today().year / 100) * 100 + ctx['shortyear']
def test_strptime(self): """ %Z not working at all """ def check_format(jdate ,fmt): jdate_str = jdate.strftime(fmt) d2 = JalaliDate.strptime(jdate_str, fmt) self.assertEqual(jdate, d2) # Test Year self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361)) self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'), JalaliDate(1361)) self.assertEqual(JalaliDate.strptime('اریا1361گلگشت', 'اریا%Yگلگشت'), JalaliDate(1361)) current_century = int(JalaliDate.today().year / 100) * 100 self.assertEqual(JalaliDate.strptime('61', '%y'), JalaliDate(current_century + 61)) self.assertEqual(JalaliDate.strptime('61%C', '%y%C'), JalaliDate(current_century + 61)) self.assertEqual(JalaliDate.strptime('اریا61گلگشت', 'اریا%yگلگشت'), JalaliDate(current_century+61)) # Test months for i in range(1, 13): self.assertEqual(JalaliDate.strptime(str(i), '%m'), JalaliDate(month=i)) self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_ABBRS[i], '%Y %b'), JalaliDate(year=1345, month=i, day=1)) self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_NAMES[i], '%Y %B'), JalaliDate(year=1345, month=i, day=1)) self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_ABBRS_ASCII[i], '%Y %g'), JalaliDate(year=1345, month=i, day=1)) self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_NAMES_ASCII[i], '%Y %G'), JalaliDate(year=1345, month=i, day=1)) self.assertRaises(ValueError, JalaliDate.strptime, '13', '%m') self.assertRaises(ValueError, JalaliDate.strptime, '0', '%m') self.assertRaises(ValueError, JalaliDate.strptime, '1345 مت', '%Y %b') self.assertRaises(ValueError, JalaliDate.strptime, '1345 شتران', '%Y %B') self.assertRaises(ValueError, JalaliDate.strptime, '1345 مت', '%Y %g') self.assertRaises(ValueError, JalaliDate.strptime, '1345 شتران', '%Y %G') # Test Week and Weekdays for i in range(7): check_format(JalaliDate.min + timedelta(i), '%d %w %W %U') self.assertEqual( JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_ABBRS[i], '%Y %m %d %a'), JalaliDate(year=1345, month=10, day=10)) self.assertEqual( JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_ABBRS_ASCII[i], '%Y %m %d %e'), JalaliDate(year=1345, month=10, day=10)) self.assertEqual( JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_NAMES[i], '%Y %m %d %A'), JalaliDate(year=1345, month=10, day=10)) self.assertEqual( JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_NAMES_ASCII[i], '%Y %m %d %E'), JalaliDate(year=1345, month=10, day=10)) # Test days for i in range(1, 32): self.assertEqual(JalaliDate.strptime(str(i), '%d'), JalaliDate(day=i)) self.assertRaises(ValueError, JalaliDate.strptime, '32', '%d') self.assertRaises(ValueError, JalaliDate.strptime, '0', '%d') # Test day of year for i in range(1, 366): self.assertEqual(JalaliDate.strptime(str(i), '%j'), JalaliDate.fromordinal(i)) self.assertRaises(ValueError, JalaliDate.strptime, '366', '%j') self.assertRaises(ValueError, JalaliDate.strptime, '0', '%j') self.assertEqual(JalaliDate.strptime('1345 5', '%Y %j'), JalaliDate(year=1345, month=1, day=5)) self.assertEqual(JalaliDate.strptime('1302 123 3 4', '%Y %j %m %d'), JalaliDate(year=1302, month=4, day=30)) self.assertEqual(JalaliDate.strptime('1302 3 4', '%Y %m %d'), JalaliDate(year=1302, month=3, day=4)) self.assertEqual(JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', '%A %d %B %Y'), JalaliDate(month=2, day=1)) self.assertEqual(JalaliDate.strptime(u'جمعه 01 فروردین 0001', '%x'), JalaliDate.min) self.assertEqual(JalaliDate.strptime(u'جمعه 31 فروردین 1375%', '%x%%'), JalaliDate(1375, 1, 31)) check_format(JalaliDate(1375, 1, 31), "%Y-%m-%d %%") check_format(JalaliDate(1375, 1, 31), "%Y-%m-%d %% %% %%") for i in xrange(1, 400): check_format(JalaliDate.fromordinal(i), "%Y-%m-%d %a%A%b%B%j%w%W%e%E%g%G%x %% %% %%") d = JalaliDate.today().replace(month=1, day=1) for i in xrange(1, algorithms.days_in_year(d.year)): check_format(d + timedelta(i), "%y-%m-%d")
import sqlite3 from project import db from khayyam import JalaliDate from project._config import DATABASE_PATH with sqlite3.connect(DATABASE_PATH) as connection: c = connection.cursor() # c.execute("""DROP TABLE IF EXISTS old_comments""") # c.execute("""ALTER TABLE comments RENAME TO old_comments""") db.create_all() c.execute( """SELECT comment, name, phone_number, profile_picture, comment_verify, comment_reply, Post_ID FROM old_comments ORDER BY post_id ASC""") data = [ (row[0], row[1], row[2], row[3], JalaliDate.today().strftime('%A %d %B %Y'), row[4], row[5], row[6]) for row in c.fetchall() ] c.executemany( """INSERT INTO comments (comment, name, phone_number, profile_picture, date, comment_verify, comment_reply, Post_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)""", data) c.execute("DROP TABLE old_comments")
def post_parser(self, ctx, formatter): from khayyam import JalaliDate ctx['year'] = int( JalaliDate.today().year / 100) * 100 + ctx['shortyear']
# _*_ coding: utf-8 _*_ from project import db from project.models import User, Post, Comment, Song import os import datetime from khayyam import JalaliDate db.create_all() #db.session.add(Question('mohmmad', '*****@*****.**', 'salam')) #db.session.add(User('mohmmad', '1a2b3F', '9039639690', 112,2017, 17, False, 0)) # for i in range(1,5): # db.session.add(Post(u'تست {}'.format(i) , u'این یک تست برای{}'.format(i) , '/sample.jpg', JalaliDate.today().strftime('%A %d %B %Y'), u'تست متن سات این یک تست متن است', u'محمد گلی', 55)) # for i in range(1,6): # db.session.add(Comment(u'تست {}'.format(i), u'محمد گلی', u'09359045545', '/sampleprofile.jpg', JalaliDate.today().strftime('%A %d %B %Y'), 1, u'این پاسخ شماره {}'.format(i), i)) for i in range(1, 6): db.session.add( Song(u'آهنگ {}'.format(i), '/test{}.mp3'.format(i), '/sampleCover{}.jpg'.format(i), JalaliDate.today().strftime('%A %d %B %Y'), 22, 1, 30, '/lyrics.txt', '/translate.txt')) db.session.commit()