@internationalizeDocstring
    def factinfo(self, irc, msg, args, channel, key):
        # Start building the response string
        s = key + ': '
        # Next, get all the info and build the response piece by piece
        info = self.db.getFactinfo(channel, key)
        if not info:
            irc.error(format(_('No such factoid: %q'), key))
            return
        (created_by, created_at, modified_by, modified_at, last_requested_by,
         last_requested_at, requested_count, locked_by, locked_at) = info
        # First, creation info.
        # Map the integer created_by to the username
        created_by = plugins.getUserName(created_by)
        created_at = time.strftime(conf.supybot.reply.format.time(),
                                   time.localtime(int(created_at)))
        s += format(_('Created by %s on %s.'), created_by, created_at)
        # Next, modification info, if any.
        if modified_by is not None:
            modified_by = plugins.getUserName(modified_by)
            modified_at = time.strftime(conf.supybot.reply.format.time(),
                                   time.localtime(int(modified_at)))
            s += format(_(' Last modified by %s on %s.'), modified_by,
                        modified_at)
        # Next, last requested info, if any
        if last_requested_by is not None:
            last_by = last_requested_by  # not an int user id
            last_at = time.strftime(conf.supybot.reply.format.time(),
                                    time.localtime(int(last_requested_at)))
            req_count = requested_count
            s += format(_(' Last requested by %s on %s, requested %n.'),
                        last_by, last_at, (requested_count, 'time'))
        # Last, locked info
        if locked_at is not None:
            lock_at = time.strftime(conf.supybot.reply.format.time(),
                                     time.localtime(int(locked_at)))
            lock_by = plugins.getUserName(locked_by)
            s += format(_(' Locked by %s on %s.'), lock_by, lock_at)
        irc.reply(s)
Returns a worksheet by its name.
dataset/ETHPy150Open ProgVal/Limnoria/plugins/MoobotFactoids/plugin.py/MoobotFactoids.factinfo--crossover with--dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/tablib-0.10.0/tablib/packages/openpyxl/workbook.py/Workbook.get_sheet_by_name