コード例 #1
0
 def test_08_interests(self):
     session = Session()
     doey = session.query(Volunteer).filter_by(name='Joey Wood').first()
     moey = VolunteerInterests("youth", doey.id)
     joey = session.query(VolunteerInterests).filter_by(volunteer_id=doey.id).first()
     #self.assertTrue(moey.interest == joey.interest)
     session.close()
コード例 #2
0
ファイル: main.py プロジェクト: victorsavu3/mufibu
def form_entity(type, id=None):
	session = Session()

	entity = None
	tag_ids = None

	if id != None:
		entity = session.query(Entity).filter(Entity.id == id).first()
		tag_ids = [ tag.id for tag in entity.tags ]
	
	files = None
	series = None
	soundtracks = None

	if(type == 'song'):
		files = session.query(File).filter(File.type == 'song').all()
		series = session.query(Series).filter(or_(Series.type == 'album', Series.type == 'soundtrack')).all()
	if(type == 'book'):
		files = session.query(File).filter(File.type == 'book').all()
		series = session.query(Series).filter(Series.type == 'book_series').all()
	if(type == 'movie'):
		series = session.query(Series).filter(Series.type == 'movie_series').all()
		soundtracks = session.query(Series).filter(Series.type == 'soundtrack').all()

	covers = session.query(File).filter(File.type == 'image').all()
	keywords = session.query(Tag).filter(Tag.type == 'keyword').all()
	genres = session.query(Tag).filter(Tag.type == 'genres').all()

	rendered = render_template("form_entity.html", type=type, entity=entity, covers=covers, files=files, 
		series=series, soundtracks=soundtracks, keywords=keywords, genres=genres, tag_ids=tag_ids)

	session.commit()

	return rendered
コード例 #3
0
ファイル: scheduler.py プロジェクト: achalv/beats
    def play_next(self, skip=False):
        if self.empty():
            random_song = random_songs(1)['results']
            if len(random_song) == 1:
                self.vote_song('RANDOM', random_song[0]['id'])

        if not self.empty():
            if player.now_playing:
                if isinstance(player.now_playing, YouTubeVideo):
                    self.remove_video(player.now_playing.url, skip=skip)
                else:
                    self.remove_song(player.now_playing.id, skip=skip)
            session = Session()
            next_packet = session.query(Packet).order_by(Packet.finish_time).first()
            if next_packet:
                if next_packet.video_url:
                    video = YouTubeVideo(next_packet)
                    player.play_media(video)
                    session.commit()
                    return video.dictify()
                else:
                    next_song = session.query(Song).get(next_packet.song_id)
                    player.play_media(next_song)
                    next_song.history.append(PlayHistory(user=next_packet.user))
                    session.commit()
                    return next_song.dictify()
コード例 #4
0
class TableMappingsTestCase(unittest.TestCase):

    def setUp(self):
        engine = bind_session_engine("sqlite:///:memory:", echo=False)
        tables.metadata.create_all(engine)
        self.session = Session()

        self.room = Room("living-room")
        self.item = Item("TV", self.room, "80", "plasma screen", True)
        self.session.add_all([self.room, self.item])
        self.session.commit()

    def test_room_relations(self):
        r = self.session.query(Room).one()
        self.assertTrue(isinstance(r, Room))
        self.assertTrue(r.name, "living-room")

    def test_item_relations(self):
        i = self.session.query(Item).one()
        self.assertTrue(isinstance(i, Item))
        self.assertTrue(i.name, "TV")
        self.assertTrue(i.room, self.room)
        self.assertTrue(i.weight, "80")
        self.assertTrue(i.description, "plasma screen")
        self.assertTrue(i.is_fragile, True)
コード例 #5
0
ファイル: scheduler.py プロジェクト: achalv/beats
    def _update_finish_times(self, user=None):
        """
        Updates finish times for packets

        If a user is specified, only update given user's queue.
        """
        session = Session()

        if user:
            packets = session.query(Packet).filter_by(user=user).order_by(Packet.arrival_time).all()
        else:
            packets = session.query(Packet).order_by(Packet.arrival_time).all()

        last_finish_time = {}
        for packet in packets:
            length = packet.video_length or session.query(Song).get(packet.song_id).length
            user = packet.user

            if user in last_finish_time:
                last_finish = max(last_finish_time[user], packet.arrival_time)
                packet.finish_time = last_finish + length / packet.weight()
                last_finish_time[user] = packet.finish_time
            else:
                packet.finish_time = packet.arrival_time + length / packet.weight()
                last_finish_time[user] = packet.finish_time

        session.commit()
コード例 #6
0
 def test_12_interests(self):
     session = Session()
     race = session.query(Event).filter_by(name='Race for the Cure').first()
     dace = EventInterests("Youth", race.id)
     lace = session.query(EventInterests).filter_by(event_id=race.id).first()
     self.assertTrue(dace.interest == lace.interest)
     session.close()
コード例 #7
0
ファイル: application.py プロジェクト: TomDunn/RedditGraph
def put_batch():
    session = Session()
    data = json.loads(request.data)
    worker = data['id']
    users  = data['users']
    users = filter(lambda u: u is not None, users)
    usernames = [user['name'] for user in users]

    for lock in session.query(UserLock).join(User) \
        .filter(User.name.in_(usernames), UserLock.status == UserLock.STATUS_WIP, UserLock.locker == worker):
        for u in users:
            if u['name'] == lock.user.name:
                if 'error' in u:
                    eId = str(uuid4())
                    lock.user.reddit_id = eId
                else:
                    lock.user.update_from_json(u)
                session.add(lock.user)

    session.commit()

    session.query(UserLock).join(User) \
        .filter(User.reddit_id != None, User.name.in_(usernames), UserLock.status == UserLock.STATUS_WIP, UserLock.locker == worker) \
        .update({'status': UserLock.STATUS_DONE, 'locker': None}, synchronize_session='fetch')

    session.commit()
    session.close()

    return jsonify({'received':'true'})
コード例 #8
0
 def test_14_neighborhoods(self):
     session = Session()
     race = session.query(Event).filter_by(name='Race for the Cure').first()
     dace = EventNeighborhoods("Back Bay", race.id)
     lace = session.query(EventNeighborhoods).filter_by(event_id=race.id).first()
     self.assertTrue(dace.neighborhood == lace.neighborhood)
     session.close()
コード例 #9
0
 def test_16_skills(self):
     session = Session()
     race = session.query(Event).filter_by(name='Race for the Cure').first()
     dace = EventSkills("Teaching/Tutoring", race.id)
     lace = session.query(EventSkills).filter_by(event_id=race.id).first()
     self.assertTrue(dace.skill == lace.skill)
     session.close()
コード例 #10
0
ファイル: db_task_manager.py プロジェクト: ioof/lixian.xunlei
 def get_task_list(self, start_task_id=0, limit=30, q="", t="", a="", order=db.Task.createtime, dis=db.desc, all=False):
     session = Session()
     self._last_get_task_list = self.time()
     # base query
     query = session.query(db.Task)
     # query or tags
     if q:
         query = query.filter(db.or_(db.Task.taskname.like("%%%s%%" % q),
             db.Task.tags.like("%%%s%%" % q)))
     elif t:
         query = query.filter(db.Task.tags.like("%%|%s|%%" % t));
     # author query
     if a:
         query = query.filter(db.Task.creator == a)
     # next page offset
     if start_task_id:
         value = session.query(order).filter(db.Task.id == start_task_id).first()
         if not value:
             return []
         if dis == db.desc:
             query = query.filter(order < value[0])
         else:
             query = query.filter(order > value[0])
         query = query.filter(db.Task.id < start_task_id)
     # order or limit
     if not all:
         query = query.filter(db.Task.invalid == False)
     query = query.order_by(dis(order), dis(db.Task.id)).limit(limit)
     return query.all()
コード例 #11
0
def main(notify):

    session = Session()
    total = session.query(Subreddit).count()
    count = 0

    notify("starting update of %d subs" % total)

    query   = session.query(Subreddit).order_by("scraped_time asc")
    dbi     = DBIterator(query=query, use_offset=None)

    for subreddit in dbi.results_iter():

        count += 1

        try:
            subreddit.update_from_praw(r.get_subreddit(subreddit.url.split('/')[2]))
            session.add(subreddit)

        except (praw.requests.exceptions.HTTPError, praw.errors.InvalidSubreddit) as e:
            print "ERROR", str(e)
            subreddit.touch()
            session.add(subreddit)

        if count % 2000 == 0 and notify is not None:
            notify("at %d of %d" % (count, total))

        if count % 10 == 0:
            session.commit()

    session.commit()
コード例 #12
0
ファイル: views.py プロジェクト: knuevena/americorps-backend
def event(event_id):
    content = {'events': 'test'}
    success = {'status': 'event created'}
    updateSuccess = {'status':'account updated'}
    noEvent = {'error': 'User not found.'}
    updateError = {'error': 'User not found/input validation failed.'}
    error = {'error': "Error in JSON/SQL syntax"}
    if request.method == 'POST':
        data = request.json
        if event.createEvent(data):
            return success, status.HTTP_200_OK
        else:
            return error, status.HTTP_500_INTERNAL_SERVER_ERROR
    if request.method == 'GET':
        s = Session()
        e = s.query(Event).filter_by(id=event_id).first()
        if e:
            return Event.asdict(e), status.HTTP_200_OK
        else:
            return noEvent, status.HTTP_404_NOT_FOUND
    if request.method == 'POST':
        data = request.json
        if data:
            s = Session()
            u = s.query(Event).filter_by(id=event_id).update(data)
            if u:
                s.commit()
                s.close()
                return updateSuccess, status.HTTP_200_OK
            else:
                return updateError, status.HTTP_400_BAD_REQUEST
コード例 #13
0
 def test_10_neighborhoods(self):
     session = Session()
     doey = session.query(Volunteer).filter_by(name='Joey Wood').first()
     moey = VolunteerNeighborhoods("backbay", doey.id)
     joey = session.query(VolunteerNeighborhoods).filter_by(volunteer_id=doey.id).first()
     #self.assertTrue(moey.neighborhood == joey.neighborhood)
     session.close()
コード例 #14
0
 def test_12_skills(self):
     session = Session()
     doey = session.query(Volunteer).filter_by(name='Joey Wood').first()
     moey = VolunteerSkills("teaching", doey.id)
     joey = session.query(VolunteerSkills).filter_by(volunteer_id=doey.id).first()
     #self.assertTrue(moey.skill == joey.skill)
     session.close()
コード例 #15
0
ファイル: views.py プロジェクト: knuevena/americorps-backend
def create_token(user):
    payload = {
        # subject
        'sub': user.id,
        #issued at
        'iat': datetime.utcnow(),
        #expiry
        'exp': datetime.utcnow() + timedelta(days=1)
    }
    
    s = Session()
    token = jwt.encode(payload, app.secret_key, algorithm='HS256')
    try:
        if (user.permissions == 'volunteer'):
            us = s.query(Volunteer).filter_by(id=user.id).first()
            d = volunteer.Volunteer.asdict(us)
            d['skills'] = VolunteerSkills.get_skills(us.id)
            d['neighborhoods'] = VolunteerNeighborhoods.get_neighborhoods(us.id)
            d['interests'] = VolunteerInterests.get_interests(us.id)
        if (user.permissions == 'admin'):
            us = s.query(Admin).filter_by(id=user.id).first()
            d = admin.Admin.asdict(us)
        if (user.permissions == 'organization'):
            us = s.query(Organization).filter_by(id=user.id).first()
            d =organization.Organization.asdict(us)
    except:
        return None
    finally:
        s.close() 
    m = {'token': str(token), 'user': d}
    return m
コード例 #16
0
 def test_14_availability(self):
     session = Session()
     doey = session.query(Volunteer).filter_by(name='Joey Wood').first()
     moey = VolunteerAvailability("Monday", doey.id)
     joey = session.query(VolunteerAvailability).filter_by(volunteer_id=doey.id).first()
     #self.assertTrue(moey.day == joey.day)
     session.close()
コード例 #17
0
ファイル: main.py プロジェクト: victorsavu3/mufibu
def delete_file(id):
	session = Session()

	session.query(File).filter(File.id==id).delete()

	session.commit()

	return redirect(url_for('manage_files'))
コード例 #18
0
 def test_05_updating_email(self):
     session = Session()
     test = session.query(User).filter_by(name='Test Org').first()
     q = session.query(User).filter_by(id=test.id)
     q = q.update({"email":"*****@*****.**"})
     test = session.query(User).filter_by(id=test.id).first()
     self.assertTrue(test.email == '*****@*****.**')
     session.close()
コード例 #19
0
 def test_04_updating_name(self):
     session = Session()
     test = session.query(User).filter_by(name='Test Org').first()
     q = session.query(User).filter_by(id=test.id)
     q = q.update({"name":"Wood Joey"})
     test = session.query(User).filter_by(id=test.id).first()
     self.assertTrue(test.name == 'Wood Joey')
     session.close()
コード例 #20
0
 def test_07_updating_email(self):
     session = Session()
     mickey = session.query(User).filter_by(name='Mickey Mouse').first()
     q = session.query(User).filter_by(id=mickey.id)
     q = q.update({"email":"*****@*****.**"})
     mickey = session.query(User).filter_by(id=mickey.id).first()
     self.assertTrue(mickey.email == '*****@*****.**')
     session.close()
コード例 #21
0
 def test_06_updating_name(self):
     session = Session()
     mickey = session.query(User).filter_by(name='Mickey Mouse').first()
     q = session.query(User).filter_by(id=mickey.id)
     q = q.update({"name":"Wood Joey"})
     mickey = session.query(User).filter_by(id=mickey.id).first()
     self.assertTrue(mickey.name == 'Wood Joey')
     session.close()
コード例 #22
0
ファイル: main.py プロジェクト: victorsavu3/mufibu
def delete_series_job(id):
	session = Session()

	session.query(SeriesJob).filter(SeriesJob.id==id).delete()

	session.commit()

	return redirect(url_for('index'))
コード例 #23
0
ファイル: app.py プロジェクト: Agnarsson/2014-T-514-VEFT
def list_movies():
    year = request.args.get('year')
    session = Session()
    if not year:
        movies = session.query(Movie).all()
    else:
        movies = session.query(Movie).filter(Movie.year == year).all()
    return render_template('list-movies.html', movies=movies)
コード例 #24
0
 def test_06_updating_zip(self):
     session = Session()
     race = session.query(Event).filter_by(name='Race for the Cure').first()
     q = session.query(Event).filter_by(id=race.id)
     q = q.update({"zip":"02120"})
     race = session.query(Event).filter_by(id=race.id).first()
     self.assertTrue(race.zip == '02120')
     session.close()
コード例 #25
0
 def test_17_updating_name(self):
     session = Session()
     joey = session.query(User).filter_by(name='Joey Wood').first()
     q = session.query(User).filter_by(id=joey.id)
     q = q.update({"name":"Wood Joey"})
     joey = session.query(User).filter_by(id=joey.id).first()
     self.assertTrue(joey.name == 'Wood Joey')
     session.close()
コード例 #26
0
 def test_18_updating_email(self):
     session = Session()
     joey = session.query(User).filter_by(name='Joey Wood').first()
     q = session.query(User).filter_by(id=joey.id)
     q = q.update({"email":"*****@*****.**"})
     joey = session.query(User).filter_by(id=joey.id).first()
     self.assertTrue(joey.email == '*****@*****.**')
     session.close()
コード例 #27
0
ファイル: main.py プロジェクト: victorsavu3/mufibu
def delete_person(id):
	session = Session()

	session.query(Person).filter(Person.id==id).delete()

	session.commit()

	return redirect(url_for('manage_persons'))
コード例 #28
0
ファイル: main.py プロジェクト: victorsavu3/mufibu
def delete_note(id):
	session = Session()

	session.query(Note).filter(Note.id==id).delete()

	session.commit()

	return redirect(url_for('index'))
コード例 #29
0
 def test_05_updating_name(self):
     session = Session()
     race = session.query(Event).filter_by(name='Race for the Cure').first()
     q = session.query(Event).filter_by(id=race.id)
     q = q.update({"name":"Wood Joey"})
     race = session.query(Event).filter_by(id=race.id).first()
     self.assertTrue(race.name == 'Wood Joey')
     session.close()
コード例 #30
0
ファイル: main.py プロジェクト: victorsavu3/mufibu
def delete_rating(id):
	session = Session()

	session.query(Rating).filter(Rating.id==id).delete()

	session.commit()

	return redirect(url_for('index'))
コード例 #31
0
 def hasInitDutyData(month, year=2019):
     session = Session()
     try:
         #print(d.duty_date.year==2019)
         query = session.query(OriginDuty)
         for q in query:
             if q.duty_date.year == year and q.duty_date.month == month:
                 return True
         else:
             return False
     except Exception as e:
         print(e)
     finally:
         session.close()
コード例 #32
0
ファイル: classes.py プロジェクト: kareem2006/ecogo
 def from_db(cls, uid):  # for already existing user
     session = Session()
     user = session.query(User).filter_by(uid=uid).first()
     username = user.username
     password = user.password
     first_name = user.first_name
     last_name = user.last_name
     phone_number = user.phone_number
     email = user.email
     address = user.address
     verified = user.verified
     session.close()
     return cls(uid, first_name, last_name, username, password,
                phone_number, email, address, verified)
コード例 #33
0
ファイル: etl.py プロジェクト: girardea/cours-data
    def filter_id(df, col, dcol):
        """Elimine de la DataFrame les éléments de col déjà présents en base"""
        session = Session()

        ids = session.query(dcol) \
                     .filter(dcol.in_(df[col])) \
                     .all()

        session.close()

        ids = [idx[0] for idx in ids]
        c = ~df[col].isin(ids)

        return df.loc[c]
コード例 #34
0
def saveContents(contents):
    session = Session()
    contentIds = {content['id'] for content in contents}
    contentsInDB = session.query(Content.id).filter(
        Content.id.in_(contentIds)).all()
    contentIdsInDB = {content.id for content in contentsInDB}

    needToSaveContentIds = contentIds - contentIdsInDB
    needToSabeContents = list(
        filter(lambda a: a['id'] in needToSaveContentIds, contents))
    session.add_all([Content(**content) for content in needToSabeContents])
    session.commit()

    session.close()
コード例 #35
0
    def __init__(self):
        dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
        dispatcher.connect(self.spider_closed, signal=signals.spider_closed)

        self.use_proxies = set()
        db_session = Session()
        self.proxy_lists = {}
        self.proxy_list_names = {}
        pl = db_session.query(ProxyList).all()
        for p in pl:
            self.proxy_lists[p.id] = p.proxies.split('\n')
            self.proxy_list_names[p.id] = p.name

        db_session.close()
コード例 #36
0
def cmd_search(bot: telegram.Bot, update: telegram.Update, session: db.Session):
    try:
        query = update.message.text.split(" ", 1)[1]
    except IndexError:
        reply(bot, update, strings.DIARIOSEARCH.ERRORS.INVALID_SYNTAX, command="search")
        return
    query = query.replace('%', '\\%').replace('_', '\\_')
    entries = session.query(db.Diario)\
                     .filter(db.Diario.text.op("~*")(r"(?:[\s\.,:;!?\"'<{([]+|^)"
                                                     + query +
                                                     r"(?:[\s\.,:;!?\"'>\})\]]+|$)"))\
                     .order_by(db.Diario.id.desc())\
                     .all()
    bot.send_message(update.message.chat.id, generate_search_message(f"<b>{query}</b>", entries), parse_mode="HTML")
コード例 #37
0
 def activate_server(self, server_id, months):
     sleep(random.randint(3, 20))
     server = Session.query(Server).filter(Server.id == server_id).first()
     if server.state == Server.DELETED:
         return
     months = Server.DEFAULT_MONTHS_PAID if months is None else int(months)
     server.state = Server.ACTIVE
     dt_now = datetime.now()
     # relativedelta измеряется в минутах, чтобы можно было проверить переход из Active в Unpaid по планировщику
     server.expired_date = dt_now + relativedelta(minutes=+months)
     server.change_date = dt_now
     Session.add(server)
     Session.commit()
     log.info("Server id={} activated".format(server_id))
コード例 #38
0
    def _update_task_list(self, limit=10, st=0, ignore=False):
        session = Session()
        tasks = self.xunlei.get_task_list(limit, st)
        for task in tasks[::-1]:
            if len(self.task_id_sample) < TASK_ID_SAMPLE_SIZE and task['lixian_url']:
                try:
                    self.xunlei.session.get(task['lixian_url'], cookies={"gdriveid": self.gdriveid}, prefetch=False)
                    self.task_id_sample.add(task['task_id'])
                except:
                    pass
            if not self.last_task_id and task['lixian_url']:
                try:
                    self.xunlei.session.get(task['lixian_url'], cookies={"gdriveid": self.gdriveid}, prefetch=False)
                    self.last_task_id = task['task_id']
                except:
                    pass
            db_task_status = session.query(db.Task.status).filter(
                    db.Task.id == task['task_id']).first()
            if db_task_status and db_task_status[0] == "finished" and self.last_task_id:
                continue

            db_task = self.get_task(int(task['task_id']))
            if not db_task:
                db_task = db.Task()
                db_task.id = task['task_id']
                db_task.create_uid = self.uid
                db_task.cid = task['cid']
                db_task.url = task['url']
                db_task.lixian_url = task['lixian_url']
                db_task.taskname = task['taskname']
                db_task.task_type = task['task_type']
                db_task.status = task['status']
                db_task.invalid = True
                db_task.process = task['process']
                db_task.size = task['size']
                db_task.format = task['format']
            else:
                db_task.lixian_url = task['lixian_url']
                db_task.status = task['status']
                if db_task.status == "failed":
                    db_task.invalid = True
                db_task.process = task['process']

            session.add(db_task)
            if not self._update_file_list(db_task):
                db_task.status = "failed"
                db_task.invalid = True
                session.add(db_task)
            
        session.commit()
コード例 #39
0
ファイル: login.py プロジェクト: rodobre/smarthack
def login():
    session = Session()
    data = request.json

    if data["type"] == "creds":
        u = session.query(Caretaker).filter_by(name = data["name"]).first()
        if u == None:
            return jsonify({"message" : "name not found"}), 400

        if u.password != data["password"]:
            return jsonify({"message" : "wrong password"}), 400

        key = random_key(128)
        Cache[key] = {
            "family_id": u.family_id,
            "type": 1,
            "id": u.id
        }
        print ("c:",  key)
        return jsonify({"token":key}), 200
    else:
        f = session.query(Family).filter_by(id = data["family_id"]).first()
        if f == None:
            return jsonify({"message":"not found"}), 400

        u = session.query(Patient).filter_by(id = data["patient_id"]).first()
        if u == None:
            return jsonify({"message":"not found"}), 400

        key = random_key(128)
        Cache[key] = {
            "family_id": data["family_id"],
            "type": 0,
            "id": u.id
        }
        print ("p:",  key)
        return jsonify({"token":key}), 200
コード例 #40
0
ファイル: alias.py プロジェクト: beproud/beproudbot
def alias_name(message, user_name, alias_name=None):
    """指定したユーザにエイリアス名を紐付ける

    :param message: slackbotの各種パラメータを保持したclass
    :param str user_name: エイリアス名を紐付けるSlackユーザー
    :param str alias_name: Slackユーザーに紐付けるエイリアス名
       alias_nameがNoneの場合、user_nameをalias_nameとして扱う
       上記の場合user_nameは投稿者となる
    """
    if alias_name:
        # ユーザー名とエイリアス名が指定されているパターン
        slack_id = get_slack_id_by_name(user_name)
    else:
        # 投稿者のエイリアス名を更新するパターン
        alias_name = user_name
        slack_id = message.body['user']
        user_name = get_user_name(slack_id)

    user = get_slack_id_by_name(alias_name)
    if user:
        botsend(message, '`{}` はユーザーが存在しているので使用できません'.format(alias_name))
        return

    if not slack_id:
        botsend(message, '{}に紐づくSlackのuser_idは存在しません'.format(user_name))
        return

    s = Session()
    alias_user_name = (s.query(UserAliasName).filter(
        UserAliasName.alias_name == alias_name))
    if s.query(alias_user_name.exists()).scalar():
        botsend(message, 'エイリアス名 `{}` は既に登録されています'.format(alias_name))
        return

    s.add(UserAliasName(slack_id=slack_id, alias_name=alias_name))
    s.commit()
    botsend(message, '{}のエイリアス名に `{}` を追加しました'.format(user_name, alias_name))
コード例 #41
0
    def import_issues(cls, website_id, filename):
        db_session = Session()

        spider_id = db_session.query(Spider)\
            .filter(Spider.website_id == int(website_id))\
            .first().id

        error_crawl = db_session.query(Crawl)\
            .filter(Crawl.spider_id == int(spider_id),
                    Crawl.status == 'errors_found')\
            .order_by(Crawl.crawl_date.desc(),
                      Crawl.id.desc())\
            .limit(1).first()

        if error_crawl:
            new_filename = '%s_%s_delisted_duplicate_errors.csv' % (
                website_id, error_crawl.id)
            new_filename_full = os.path.join(DATA_DIR, new_filename)
            new_filename_full_tmp = new_filename_full + '~'
            shutil.copy(filename, new_filename_full_tmp)

            os.rename(new_filename_full_tmp, new_filename_full)

            dd_error = db_session.query(DelistedDuplicateError)\
                .filter(DelistedDuplicateError.website_id == website_id,
                        DelistedDuplicateError.crawl_id == error_crawl.id)\
                .first()
            if not dd_error:
                dd_error = DelistedDuplicateError()
            dd_error.website_id = website_id
            dd_error.crawl_id = error_crawl.id
            dd_error.filename = new_filename
            dd_error.fixed = False
            db_session.add(dd_error)
            db_session.commit()

        db_session.close()
コード例 #42
0
def cmd_newevent(bot: telegram.Bot, update: telegram.Update, session: db.Session):
    try:
        _, timestring, name_desc = update.message.text.split(" ", 2)
    except ValueError:
        bot.send_message(update.message.chat.id, "⚠️ Sintassi del comando non valida.\n"
                                                 "Sintassi corretta:\n"
                                                 "```/newevent <timestamp|[[[anno-]mese-]giorno-]ore-minuti"
                                                 "|{numero}{w|d|h|m}> <nome>\n"
                                                 "[descrizione]```", parse_mode="Markdown")
        return
    try:
        name, description = name_desc.split("\n", 1)
    except ValueError:
        name = name_desc
        description = None
    # Parse the timestring
    try:
        parsed_time = parse_timestring(timestring)
        if parsed_time < datetime.datetime.now():
            raise errors.PastDateError()
    except ValueError:
        bot.send_message(update.message.chat.id, "⚠ Non è stato possibile leggere la data.\n"
                                                 "Sintassi corretta:\n"
                                                 "```/newevent <timestamp|[[[anno-]mese-]giorno-]ore-minuti"
                                                 "|{numero}{w|d|h|m}> <nome>\n"
                                                 "[descrizione]```", parse_mode="Markdown")
        return
    except errors.PastDateError:
        bot.send_message(update.message.chat.id, "⚠ La data inserita è una data passata.\n"
                                                 "per favore inserisci una data futura.\n", parse_mode="Markdown")
        return
    # Create the event
    telegram_user = session.query(db.Telegram)\
                           .filter_by(telegram_id=update.message.from_user.id)\
                           .join(db.Royal)\
                           .one_or_none()
    event = db.Event(author=telegram_user.royal,
                     name=name,
                     description=description,
                     time=datetime.datetime.fromtimestamp(0))
    # Set the time
    if isinstance(parsed_time, datetime.datetime):
        event.time = parsed_time
    else:
        event.time_left = parsed_time
    # Save the event
    session.add(event)
    session.commit()
    bot.send_message(update.message.chat.id, "✅ Evento aggiunto al Calendario Royal Games!")
コード例 #43
0
def emailOfPerson_notes_add(_id):
    """
    Додавання нової нотатки на фіз особу. В групу Note
    :param _id: id фіз особи на яку додають нотатку
    """
    session = Session()
    data = request.json
    id_author = session.query(
        Person.id).filter(Person.email == current_user.get_id()).first()
    data.setdefault('fk_author', id_author[0])
    note = Note(**data)
    session.add(note)
    session.commit()
    session.close()
    return 'ok'
コード例 #44
0
def query_location(name=None, latitude=None, longitude=None):
    location = None
    session = Session(expire_on_commit=False)
    if name is not None and len(name) > 0:
        name = unquote(name)
        location = session.query(Location).filter(
            Location.name.like(name)).first()
        if (latitude is not None and len(latitude) > 0
                and longitude is not None and len(longitude) > 0):
            if location is None:
                # print('create')
                location = Location(name=name.upper(),
                                    latitude=latitude,
                                    longitude=longitude)
                session.add(location)
            else:
                # print('update')
                location.latitude = latitude
                location.longitude = longitude
                location.lastseen = datetime.now()
            session.commit()

        else:  # not on our database
            if location is None:
                # print('import')
                rloc = locator.geocode(name)
                location = Location(name=name.upper(),
                                    latitude=rloc.latitude,
                                    longitude=rloc.longitude)
                session.add(location)
                session.commit()
    else:
        location = session.query(Location).order_by(Location.name.asc()).all()

    session.close()
    return to_csv(location)
コード例 #45
0
def worker_documents(_id):
    """
    Повертає список документів фіз особи. В групу Document
    :param id_: фіз особи
    """
    session = Session()
    all_records = session.query(Document).filter_by(fk_person=_id).all()
    converter = DocumentSchema(many=True,
                               only=[
                                   'id', 'name', 'file_type', 'created',
                                   'status', 'type_', 'fk_person'
                               ])
    response = converter.dump(all_records).data
    session.close()
    return jsonify(response)
コード例 #46
0
def update_user_db_1c():
    """
    оновлення даних з 1с
    """
    _1c = json.loads(load_users())
    session = Session()
    for arg in _1c['data']:
        worker = session.query(Worker).filter(Worker.sid == arg['SID']).first()
        if worker and arg['SID'] != '':
            if arg['dismissed']:
                status = 'dismissed'
            else:
                status = 'active'
            update_from_1c(arg, status, worker.fk_person)
    session.close()
コード例 #47
0
ファイル: classes.py プロジェクト: kareem2006/ecogo
def credential_check(username,
                     password):  # returns -1 if username doesnt exist
    # returns uid of person
    session = Session()
    user = session.query(User).filter_by(username=username).first()
    if user == None:
        session.close()
        return -1
    if password == user.password:
        uid = user.uid
        session.close()
        return uid
    else:
        session.close()
        return False
コード例 #48
0
ファイル: views.py プロジェクト: woolfius/placard
def api_admin_branch_list():
    """
    Повертає список філіалів.
    """
    session = Session()
    result = session.query(Branch).join(City, City.id == Branch.fk_city).all()
    converter = BranchSchema(many=True,
                             only=[
                                 'id', 'name', 'name_en', 'zip_code',
                                 'address_ua', 'address_ru', 'address_en',
                                 'fk_city', 'city.name', 'status'
                             ])
    dumps_data = converter.dump(result).data
    session.close()
    return jsonify(dumps_data)
コード例 #49
0
ファイル: views.py プロジェクト: woolfius/placard
def api_admin_city_list():
    """
    Список міст.
    """
    session = Session()
    result = session.query(City).join(Region,
                                      Region.id == City.fk_region).all()
    converter = CitySchema(many=True,
                           only=[
                               'name', 'name_en', 'id', 'fk_region',
                               'region.name', 'region.name_en'
                           ])
    dumps_data = converter.dump(result).data
    session.close()
    return jsonify(dumps_data)
コード例 #50
0
class Repository:
    def __init__(self):
        logger.info("init Repository")
        self.session = Session()
        logger.info(self.session)

    def add_user1(self):
        logger.info("add_user1")
        user = User(name="ika", email="*****@*****.**")
        self.session.add(user)

    def add_user2(self):
        logger.info("add_user2")
        user = User(name="tako", email="*****@*****.**")
        self.session.add(user)

    def read_users(self, name=None):
        logger.info("read_users")
        if name:
            res = self.session.query(User).filter(User.name == name).first()
        else:
            res = self.session.query(User).all()

        return res
コード例 #51
0
ファイル: app.py プロジェクト: neutralord/neutral.su-v2
def note_edit(note_id=None):
    s = get_session()
    if not s.get('authenticated'):
        return bottle.redirect('/login')
    note = None
    if note_id is not None:
        db_session = Session()
        note = db_session.query(Note).get(note_id)
    return template('note/edit.html',
                    note=note,
                    types={
                        Note.SOURCE_TYPE_MARKDOWN: 'Markdown',
                        Note.SOURCE_TYPE_HTML: 'HTML',
                        Note.SOURCE_TYPE_PLAINTEXT: 'Plain text',
                    })
コード例 #52
0
def poll_status(status):
    """
    Повертає список опитувань в залежгості до status(в розробці, активні, завершені). в групу Poll
    :param status: status(в розробці, активні, завершені)
    """
    session = Session()
    all_records = session.query(Poll).filter_by(status=status).all()
    converter = PollSchema(many=True,
                           only=[
                               'id', 'name', 'created', 'count_of_complete',
                               'total_count', 'status', 'description'
                           ])
    response = converter.dump(all_records).data
    session.close()
    return jsonify(response)
コード例 #53
0
ファイル: db_users.py プロジェクト: hmguan/website2
 def reset_permission(user_id, permission):
     try:
         session_obj = Session()
         tmp = session_obj.query(user_info).filter_by(id=user_id).first()
         if tmp == None:
             Session.remove()
             return -1
         tmp.permission = permission
         session_obj.commit()
         Session.remove()
     except Exception as e:
         Logger().get_logger().error(str(e))
         session_obj.rollback()
         return -2
     return 0
コード例 #54
0
 def packages(user_id):
     try:
         session_obj = Session()
         ret = session_obj.query(package_info).options(
             subqueryload(package_info.user)).filter(
                 or_(package_info.user_id == user_id,
                     package_info.user_id == 1)).order_by(
                         desc(package_info.user_id),
                         desc(package_info.time)).all()
         Session.remove()
         return ret
     except Exception as e:
         Logger().get_logger().error(str(e))
         session_obj.rollback()
         return -2
コード例 #55
0
def view_patients():
    data = request.json

    if not is_auth(request.headers):
        return 'not authenticated', 401

    family_id = None

    try:
        family_id = Cache[request.headers['Token']]['family_id']
    except:
        return 'invalid parameters', 400

    s = Session()
    r = s.query(Patient).filter_by(family_id=family_id).all()
    return repr(r)
コード例 #56
0
ファイル: db_users.py プロジェクト: hmguan/website2
 def update_pwd(user_id, pwd, new_pwd) -> int:
     try:
         session_obj = Session()
         tmp = session_obj.query(user_info).filter_by(id=user_id).first()
         if tmp == None:
             return -1
         if tmp.pwd != pwd:
             return -2
         tmp.pwd = new_pwd
         session_obj.commit()
         Session.remove()
     except Exception as e:
         Logger().get_logger().error(str(e))
         session_obj.rollback()
         return -3
     return 0
コード例 #57
0
ファイル: db_users.py プロジェクト: hmguan/website2
    def reset_pwd(user_id) -> int:
        try:
            session_obj = Session()
            tmp = session_obj.query(user_info).filter_by(id=user_id).first()
            if tmp == None:
                Session.remove()
                return -1
            tmp.pwd = "e10adc3949ba59abbe56e057f20f883e"
            session_obj.commit()
            Session.remove()
        except Exception as e:
            Logger().get_logger().error(str(e))
            session_obj.rollback()
            return -2

        return 0
コード例 #58
0
def top_songs(limit=20):
    songs = Song.__table__
    play_history = PlayHistory.__table__
    conn = engine.connect()
    cols = [songs.c.id, func.count(play_history.c.id).label('play_count')]
    s = (select(cols)
         .select_from(songs.join(play_history))
         .group_by(songs.c.id)
         .order_by('play_count DESC')
         .limit(limit))
    res = conn.execute(s)
    conn.close()
    session = Session()
    songs = [session.query(Song).get(song[0]).dictify() for song in res]
    session.commit()
    return {'limit': limit, 'results': songs}
コード例 #59
0
 def update(package_id, remark):
     try:
         session_obj = Session()
         tmp = session_obj.query(package_info).filter_by(
             id=package_id).first()
         if tmp == None:
             Session.remove()
             return -1
         tmp.remarks = remark
         session_obj.commit()
         Session.remove()
         return 0
     except Exception as e:
         Logger().get_logger().error(str(e))
         session_obj.rollback()
         return -2
コード例 #60
0
ファイル: subs.py プロジェクト: alex13sh/telegrambot_habr
async def list_sub(inline_query: InlineQuery):
    session = Session()
    _startwith = inline_query.query
    items = []
    for row in session.query(BD_Subs).filter_by(user_id=inline_query.from_user.id):
        if not row.sub_name.lower().startswith(_startwith): continue
        
        sub_name = row.sub_name
        item = InlineQueryResultArticle(
            id=row.id,
            title=f'Result {sub_name}',
            input_message_content=InputTextMessageContent(sub_name),
        )
        items.append(item)
        
    await bot.answer_inline_query(inline_query.id, results=items, cache_time=1)