コード例 #1
0
def talk_to_me():
    if request.method == 'GET':
        return render_template('talk_to_me.html')
    else:
        msg = ''
        m_user = request.form.get('m_user')
        m_secret = request.form.get('m_secret')
        guy = request.form.get('guy')
        message = request.form.get('message')
        m_list = request.form.get('m_list')

        user = request.form.get('user')
        secret = request.form.get('secret')
        new_password = request.form.get('new_password')
        listing = request.form.get('list')
        delete = request.form.get('deletion')

        print(m_user, m_secret, guy, message, m_list)
        print(user, secret, new_password, listing, delete)

        if delete == 'yes':
            u.delete_user(user, secret)
        if listing == 'yes':
            u.list_users()
        if m_list == 'yes':
            m.list_messages(m_user, m_secret)
        if message is not None:
            m.send_message(m_user, m_secret, guy, message)
        if user is not None:
            u.create_user(user, secret)
        if new_password is not None:
            u.edit_user(user, secret, new_password)

        return render_template('talk_to_me.html', msg=msg)
コード例 #2
0
ファイル: cli.py プロジェクト: pjbriggs/nebulizer
def list_users(context,galaxy,name,long_listing):
    """
    List users in Galaxy instance.

    Prints details of user accounts in GALAXY instance.
    """
    # Get a Galaxy instance
    gi = context.galaxy_instance(galaxy)
    if gi is None:
        logger.critical("Failed to connect to Galaxy instance")
        return 1
    # List users
    users.list_users(gi,name=name,long_listing_format=long_listing)
コード例 #3
0
ファイル: main.py プロジェクト: m8ypie/fpmg-249-2
def list_users():
    """ Lists users registered with pssst
    :return: Page listing users
    """
    user = users.list_users(db)
    dic = {"loginFailed": "False", "users": user}
    dic.update(determine_user())
    return template("listUsers.tpl", dic)
コード例 #4
0
ファイル: qt5scales.py プロジェクト: malkavi/xwiibboard
    def initUI(self):
        self.lbl = QtWidgets.QLabel("User", self)
        list_user = users.list_users()

        # List of users (db)
        self.combo = QtWidgets.QComboBox(self)
        self.combo.addItems(list_user)
        self.combo.move(50, 50)
        self.lbl.move(50, 150)

        # Launch BBoard
        self.btn1 = QtWidgets.QPushButton("Click me", self)
        self.btn1.setGeometry(QtCore.QRect(0, 0, 100, 30))

        self.btn1.clicked.connect(
            lambda: self.onClick(self.combo.currentText()))
        self.combo.activated[str].connect(self.onActivated)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Select user')
        self.show()
コード例 #5
0
ファイル: qt5scales.py プロジェクト: malkavi/xwiibboard
    def initUI(self):      
        self.lbl = QtWidgets.QLabel("User", self)
        list_user = users.list_users()
        
        # List of users (db)
        self.combo = QtWidgets.QComboBox(self)
        self.combo.addItems(list_user)
        self.combo.move(50, 50)
        self.lbl.move(50, 150)

        # Launch BBoard
        self.btn1 = QtWidgets.QPushButton("Click me", self)
        self.btn1.setGeometry(QtCore.QRect(0, 0, 100, 30))
        
        
        self.btn1.clicked.connect(lambda: self.onClick(self.combo.currentText()))
        self.combo.activated[str].connect(self.onActivated)
         
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Select user')
        self.show()
コード例 #6
0
    print("Time to load all user data (except reviews): %d s" %
          (time() - stime))

    # build user_id => review dict for quick lookup
    reviews_data_path = "/reviews.json"
    stime = time()
    reviews = reviews.Reviews(path_to_Dataset + reviews_data_path)
    print("Time to build fast look up user-reviews dict: %d s" %
          (time() - stime))

    #collected_reviews = dict()
    collected_reviews = list()
    restaurant_dict = dict()
    # for each user ...
    count = 0
    for user in users.list_users():
        # load all of user's restaurant reviews
        count = count + 1
        stime = time()
        uid = user.user_id()
        user_reviews = reviews.get_reviews_for_user(uid)
        if user_reviews == None:
            continue
        # key is now a (business_id, rating) tuple
        for key, value in user_reviews.items():
            business_id = key[0]
            rating = key[1]
            #collected_reviews[uid + ":" + business_id] = value
            #collected_reviews[count] = value
            collected_reviews.append(value)
            if business_id not in restaurant_dict:
コード例 #7
0
def user_list():
    return users.list_users()
コード例 #8
0
def main():
    parser = argparse.ArgumentParser()
    subparsers = parser.add_subparsers(help='commands', dest='command')

    # Accounts command
    account_parser = subparsers.add_parser('account',
                                           help='Runs account examples')
    account_parser.add_argument('--get',
                                '-g',
                                default=False,
                                action='store_true',
                                help='Get account resource')
    account_parser.add_argument('--update',
                                '-u',
                                default=False,
                                action='store_true',
                                help='Upate account resource')
    account_parser.add_argument('--billing-status',
                                '-s',
                                default=False,
                                action='store_true',
                                help='Get account billing status')
    account_parser.add_argument('--id',
                                '-i',
                                required=False,
                                type=str,
                                action='store',
                                help='Resource id')
    account_parser.add_argument('--company-name',
                                '-n',
                                required=False,
                                type=str,
                                action='store',
                                help='Company name')

    # Users command
    users_parser = subparsers.add_parser('user', help='Runs user examples')
    users_parser.add_argument('--list',
                              '-l',
                              default=False,
                              action='store_true',
                              help='Lists users associated with your account')
    users_parser.add_argument('--get',
                              '-g',
                              default=False,
                              action='store_true',
                              help='Get user resource')
    users_parser.add_argument('--id',
                              '-i',
                              required=False,
                              type=str,
                              action='store',
                              help='Resource id')

    # Mesages command
    messages_parser = subparsers.add_parser('message',
                                            help='Runs messages example')
    messages_parser.add_argument('--list',
                                 '-l',
                                 default=False,
                                 action='store_true',
                                 help='Lists message resources')
    messages_parser.add_argument('--send',
                                 '-s',
                                 default=False,
                                 action='store_true',
                                 help='Send message')
    messages_parser.add_argument('--get',
                                 '-g',
                                 default=False,
                                 action='store_true',
                                 help='Get message resource')
    messages_parser.add_argument('--id',
                                 '-i',
                                 required=False,
                                 type=str,
                                 action='store',
                                 help='Resource id')
    messages_parser.add_argument('--body',
                                 '-b',
                                 required=False,
                                 type=str,
                                 action='store',
                                 help='Message body')
    messages_parser.add_argument('--media-url',
                                 '-u',
                                 required=False,
                                 type=str,
                                 action='store',
                                 help='Media URL for MMS')
    messages_parser.add_argument('--from-number',
                                 '-f',
                                 required=False,
                                 type=str,
                                 action='store',
                                 help='From phone number (+12123456789)')
    messages_parser.add_argument('--to-number',
                                 '-t',
                                 required=False,
                                 type=str,
                                 action='store',
                                 help='To phone number (+12128765432)')

    # Number command
    number_parser = subparsers.add_parser('number',
                                          help='Runs number examples')
    number_parser.add_argument('--list-available',
                               '-a',
                               default=False,
                               action='store_true',
                               help='Lists available numbers')
    number_parser.add_argument('--list-associated',
                               '-l',
                               default=False,
                               action='store_true',
                               help='Lists associated numbers')
    number_parser.add_argument('--buy',
                               '-b',
                               default=False,
                               action='store_true',
                               help='Buy number')
    number_parser.add_argument('--update',
                               '-u',
                               default=False,
                               action='store_true',
                               help='Update number')
    number_parser.add_argument('--id',
                               '-i',
                               required=False,
                               type=str,
                               action='store',
                               help='Resource id')
    number_parser.add_argument('--phone-number-name',
                               '-n',
                               required=False,
                               type=str,
                               action='store',
                               help='Phone number name')
    number_parser.add_argument('--phone-number',
                               '-p',
                               required=False,
                               type=str,
                               action='store',
                               help='Phone number (+12124567890)')

    args = parser.parse_args()

    if args.command == 'message':
        if args.send:
            # https://imgs.xkcd.com/comics/lisp_cycles.png
            message = send_message(
                to_number=args.to_number,
                from_number=args.from_number,
                body=args.body,
                media_urls=[args.media_url] if args.media_url else None)
            print(message.id, message.from_number, message.to_number)
        if args.get:
            message = get_message(args.id)
            print(message.id, message.from_number, message.to_number,
                  message.body)
        if args.list:
            for message in list_messages():
                print(message.id, message.to_number, message.from_number,
                      message.body)

    elif args.command == 'number':
        if args.list_available:
            for number in list_available_numbers():
                print(number.name, number.phone_number_type,
                      number.phone_number)
        if args.list_associated:
            for number in list_associated_numbers():
                print(number.id, number.name, number.phone_number_type,
                      number.phone_number)
        if args.buy:
            area_code = args.phone_number[2:5] if args.phone_number.startswith('+') \
                else args.phone_number[1:4]
            number = buy_number(name=args.phone_number_name,
                                phone_number=args.phone_number,
                                area_code=area_code,
                                phone_number_type='local')
            print(number.id, number.name, number.phone_number)
        if args.update:
            number = update_number_name(args.id, name=args.phone_number_name)
            print(number.id, number.name, number.phone_number)
    elif args.command == 'user':
        if args.list:
            for user in list_users():
                print(user.id, user.first_name, user.last_name)
        if args.get:
            user = get_user(args.id)
            print(user.id, user.first_name, user.last_name)
    elif args.command == 'account':
        if args.billing_status:
            status = billing_status()
            print(status)
        if args.get:
            account = get_account(args.id)
            print(account.id, account.company_name)
        if args.update:
            account = update_account(args.id, company_name=args.company_name)
            print(account.id, account.company_name)
コード例 #9
0
    stime = time()
    users = users.Users(path_to_Dataset + user_data_path, n_users=n_users)
    print ("Time to load all user data (except reviews): %d s" % (time() - stime))

    # build user_id => review dict for quick lookup
    reviews_data_path = "/reviews.json"
    stime = time()
    reviews = reviews.Reviews(path_to_Dataset + reviews_data_path)
    print ("Time to build fast look up user-reviews dict: %d s" % (time() - stime))

    #collected_reviews = dict()
    collected_reviews = list()
    restaurant_dict = dict()
    # for each user ...
    count = 0
    for user in users.list_users():
        # load all of user's restaurant reviews
        count = count + 1
        stime = time()
        uid = user.user_id()
        user_reviews = reviews.get_reviews_for_user(uid)
        if user_reviews == None:
            continue
        # key is now a (business_id, rating) tuple
        for key, value in user_reviews.items():
            business_id = key[0]
            rating = key[1]
            #collected_reviews[uid + ":" + business_id] = value
            #collected_reviews[count] = value
            collected_reviews.append(value)
            if business_id not in restaurant_dict:
コード例 #10
0
 async def _users(self):
     """
     Command to manage users.
     """
     if not await self._ensure_admin():
         return
     text = None
     if self.args:
         if self.args[0] == "list":
             users = list_users(self.config)
             text = f"The following usernames were found: {', '.join([user['username'] for user in users])}"
         elif self.args[0] == "help":
             text = help_strings.HELP_USERS
         elif self.args[0] == "invite":
             if len(self.args) == 1 or self.args[1] == "help":
                 text = help_strings.HELP_USERS_INVITE
             else:
                 emails = self.args[1:]
                 emails = {email.strip() for email in emails}
                 texts = []
                 for email in emails:
                     try:
                         validated = validate_email(email)
                         email = validated.email
                         logger.debug("users invite - Email %s is valid",
                                      email)
                     except EmailNotValidError as ex:
                         texts.append(
                             f"The email {email} looks invalid: {ex}")
                         continue
                     try:
                         existing_user = get_user_by_attr(
                             self.config, "email", email)
                     except Exception as ex:
                         texts.append(
                             f"Error looking up existing users by email {email}: {ex}"
                         )
                         continue
                     if existing_user:
                         texts.append(
                             f"Found an existing user by email {email} - ignoring"
                         )
                         continue
                     logger.debug(
                         "users invite - No existing user for %s found",
                         email)
                     username = None
                     username_candidate = email.split('@')[0]
                     username_candidate = username_candidate.lower()
                     username_candidate = re.sub(r'[^a-z0-9._\-]', '',
                                                 username_candidate)
                     candidate = username_candidate
                     counter = 0
                     while not username:
                         logger.debug("users invite - candidate: %s",
                                      candidate)
                         # noinspection PyBroadException
                         try:
                             existing_user = get_user_by_attr(
                                 self.config, "username", candidate)
                         except Exception:
                             existing_user = True
                         if existing_user:
                             logger.debug(
                                 "users invite - Found existing user with candidate %s",
                                 existing_user)
                             counter += 1
                             candidate = f"{username_candidate}{counter}"
                             continue
                         username = candidate
                         logger.debug("Username is %s", username)
                     user_id = create_user(self.config, username, email)
                     logger.debug("Created user: %s", user_id)
                     if not user_id:
                         texts.append(
                             f"Failed to create user for email {email}")
                         logger.warning(
                             "users invite - Failed to create user for email %s",
                             email)
                         continue
                     send_password_reset(self.config, user_id)
                     logger.info(
                         "users invite - Successfully invited user with email %s",
                         email)
                     texts.append(f"Successfully invited {email}!")
                 text = '\n'.join(texts)
     else:
         users = list_users(self.config)
         text = f"The following usernames were found: {', '.join([user['username'] for user in users])}"
     if not text:
         text = help_strings.HELP_USERS
     await send_text_to_room(self.client, self.room.room_id, text)
コード例 #11
0
ファイル: deprecated_cli.py プロジェクト: pjbriggs/nebulizer
def manage_users(args=None):
    """
    Implements the 'manage_users' utility

    """
    deprecation_warning()
    if args is None:
        args = sys.argv[1:]

    p = base_parser(usage=\
                    "\n\t%prog list   GALAXY_URL [options]"
                    "\n\t%prog create GALAXY_URL EMAIL [PUBLIC_NAME]"
                    "\n\t%prog create GALAXY_URL -t TEMPLATE START [END]"
                    "\n\t%prog create GALAXY_URL -b FILE [options]",
                    description="Manage and create users in a Galaxy "
                    "instance")
    commands = ['list','create']

    # Get compulsory arguments
    if len(args) == 1:
        if args[0] == '-h' or args[0] == '--help':
            p.print_usage()
        elif args[0] == '--version':
            p.print_version()
        sys.exit(0)
    if len(args) < 2:
        p.error("need to supply a command and a Galaxy URL/alias")
    command = args[0]
    galaxy_url = args[1]

    # Setup additional command line options
    if command not in commands:
        p.error("unrecognised command: '%s'" % command)
    elif command == 'list':
        p.set_usage("%prog list GALAXY_URL [options]")
        p.add_option('--name',action='store',dest='name',default=None,
                     help="specific emails/user name(s) to list")
        p.add_option('-l',action='store_true',
                     dest='long_listing_format',default=False,
                     help="use a long listing format (include ids, "
                     "disk usage and admin status)")
    elif command == 'create':
        p.set_usage("\n\t%prog create GALAXY_URL EMAIL [PUBLIC_NAME]"
                    "\n\t%prog create GALAXY_URL -t TEMPLATE START [END]"
                    "\n\t%prog create GALAXY_URL -b FILE [options]")
        p.add_option('-p','--password',action='store',dest='passwd',
                     default=None,
                     help="specify password for new user account "
                     "(otherwise program will prompt for password)")
        p.add_option('-c','--check',action='store_true',dest='check',
                     default=False,
                     help="check user details but don't try to create "
                     "the new account")
        p.add_option('-t','--template',action='store_true',
                     dest='template',default=False,
                     help="indicates that EMAIL is actually a "
                     "'template' email address which includes a '#' "
                     "symbol as a placeholder where an integer index "
                     "should be substituted to make multiple accounts "
                     "(e.g. 'student#@galaxy.ac.uk').")
        p.add_option('-b','--batch',action='store_true',dest='batch',
                     default=False,
                     help="create multiple users reading details from "
                     "TSV file (columns should be: "
                     "email,password[,public_name])")
        p.add_option('-m','--message',action='store',
                     dest='message_template',default=None,
                     help="populate and output Mako template "
                     "MESSAGE_TEMPLATE")
        
    # Process remaining arguments on command line
    if args[1] in ('-h','--help','--version'):
        args = args[1:]
    else:
        args = args[2:]
    options,args = p.parse_args(args)
    handle_debug(debug=options.debug)
    handle_suppress_warnings(suppress_warnings=options.suppress_warnings)
    handle_ssl_warnings(verify=(not options.no_verify))

    # Handle password if required
    email,password = handle_credentials(options.username,
                                        options.galaxy_password,
                                        prompt="Password for %s: " % galaxy_url)

    # Get a Galaxy instance
    gi = get_galaxy_instance(galaxy_url,api_key=options.api_key,
                             email=email,password=password,
                             verify_ssl=(not options.no_verify))
    if gi is None:
        logger.critical("Failed to connect to Galaxy instance")
        sys.exit(1)

    # Execute command
    if command == 'list':
        users.list_users(gi,name=options.name,long_listing_format=
                         options.long_listing_format)
    elif command == 'create':
        # Check message template is .mako file
        if options.message_template:
            if not os.path.isfile(options.message_template):
                logger.critical("Message template '%s' not found"
                                % options.message_template)
                sys.exit(1)
            elif not options.message_template.endswith(".mako"):
                logger.critical("Message template '%s' is not a .mako file"
                                % options.message_template)
                sys.exit(1)
        if options.template:
            # Get the template and range of indices
            template = args[0]
            start = int(args[1])
            try:
                end = int(args[2])
            except IndexError:
                end = start
            # Create users
            retval = users.create_users_from_template(gi,template,
                                                      start,end,options.passwd,
                                                      only_check=options.check)
        elif options.batch:
            # Get the file with the user data
            tsvfile = args[0]
            # Create users
            retval = users.create_batch_of_users(gi,tsvfile,
                                                 only_check=options.check,
                                                 mako_template=options.message_template)
        else:
            # Collect email and (optionally) public name
            email = args[0]
            try:
                name = args[1]
                if not users.check_username_format(name):
                    logger.critical("Invalid name: must contain only "
                                    "lower-case letters, numbers and "
                                    "'-'")
                    sys.exit(1)
            except IndexError:
                # No public name supplied, make from email address
                name = users.get_username_from_login(email)
            # Create user
            print "Email : %s" % email
            print "Name  : %s" % name
            retval = users.create_user(gi,email,name,options.passwd,
                                       only_check=options.check,
                                       mako_template=options.message_template)