Esempio n. 1
0
class EssentialPrompt(Cmd):

    #    def setup(self):
    #        self.db = None

    def do_use(self, args):
        self.db = EssentialDB(filepath=args.strip())
        print(self.db)

    def do_collection(self, args):
        self.collection = self.db.get_collection(args)

    def do_find(self, args):
        pprint.pprint(self.collection.find())

    def do_show(self, args):
        if args == "collections":
            print("Collections:")
            print([c for c in self.db.collections])

    def do_quit(self, args):
        """Quits the program."""
        print("Quitting.")
        raise SystemExit
Esempio n. 2
0
class EssentialTropicsStorage:
    def __init__(self, filepath):
        self.db = EssentialDB(filepath=filepath)
        self.db.sync()

    def profile(self, id=None, login=None):
        if id:
            return self._profiles().get(id)
        if login:
            return self._profiles().find_one({'login': login})

    def profiles(self):
        return self._profiles().find()

    def store_profile(self, profile):
        with self._profiles() as profiles:
            return profiles.insert_one(profile)

    def store_profiles(self, profiles):
        with self._profiles() as profile_store:
            return profile_store.insert_many(profiles)

    def remove_profile(self, profile_id):
        with self._profiles() as profiles:
            return profiles.remove({'_id': profile_id})

    def credential(self, id=None, login=None):
        if id:
            return self._credentials().get(id)
        elif login:
            return self._credentials().find_one({'login': login})
        return None

    def store_credential(self, credential):
        with self._credentials() as credential_collection:
            credential_collection.insert_one(credential)

    def remove_credential(self, id=None, login=None):
        with self._credentials() as credential_collection:
            if id:
                return credential_collection.remove({'_id': id})
            elif login:
                return credential_collection.remove({'login': login})
            return None

    def session(self, token=None, login=None, profile_id=None):
        if token:
            return self._sessions().get(token)
        elif profile_id:
            return self._sessions().find_one({'profile_id': profile_id})
        else:
            return self._sessions().find_one({'login': login})

    def store_session(self, session):
        with self._sessions() as credential_collection:
            return credential_collection.insert_one(session)

    def remove_session(self, token):
        with self._sessions() as session_collection:
            return session_collection.remove({'_id': token})

    def _profiles(self):
        return self.db.get_collection("profiles")

    def _credentials(self):
        return self.db.get_collection("credentials")

    def _sessions(self):
        return self.db.get_collection("sessions")

    def _reset_all(self, seriously):
        if seriously:
            with self._profiles() as profiles:
                profiles.remove()
            with self._credentials() as credentials:
                credentials.remove()
            return True

        return False