Beispiel #1
0
def convert_file(source, target):
    target.parent.mkdir(parents=True, exist_ok=True)
    os.system(' '.join([
        'ffmpeg', '-i',
        quote(escape(source.as_posix())),
        quote(escape(target.as_posix()))
    ]))
Beispiel #2
0
def search(args, nick):
  url = "http://www.urbandictionary.com/define.php?term=" + common.quote(args)
  content = common.read_url(url)

  match = re.search(r'<div class="definition">(.+?)</div>.*?<div class="example">(.+?)</div>', content)
  try:
    definition = match.group(1)
    example = match.group(2)
  except AttributeError:
    result = "Inga träffar. ({0})".format(url)
  else:
    def fixhtml(str):
      str = re.sub(r'(<br ?/>)+', r' ', str)
      str = re.sub('\n', r' ', str)
      str = re.sub('\r', r' ', str)
      str = re.sub(r'(<.+?>)+', r'', str)
      return common.unescape_html(str)

    # magic constants used when calculating space_left:
    #   * 450 -- the smallest length of an irc message (hopefully; depends on server.)
    #   * 20  -- the longest channel name including # (hopefully; i have no idea)
    #   * 16  -- the length of the static crap in the result string (definitely)
    space_left = (450 - len('PRIVMSG  :') - 20 - len(nick + ': ') - len(url) - 16)

    definition = common.truncate(fixhtml(definition), int(space_left/2))
    example = common.truncate(fixhtml(example), int(space_left/2))
    result = '{0} (Exempel: {1}) -- {2}'.format(definition, example, url)

  return result
    def bulk_insert_into_table(self,
                               schema_name,
                               table_name,
                               table_schema,
                               rows,
                               extended_definitions=None):
        command_name = f'insert_into_table'

        # insert extended column definitions into schema
        if extended_definitions:
            table_schema.column_definitions(extended_definitions)

        column_names = ', '.join(quote(table_schema.columns.keys()))
        # print(f'column_names: {column_names}')

        column_placeholders = ', '.join([self.queryparm] *
                                        len(table_schema.columns))
        autocommit = self.conn.autocommit
        self.conn.autocommit = False
        sql_template = self.sql(command_name)
        sql_command = expand(sql_template)
        self.log(command_name, sql_command)
        self.cursor.fast_executemany = True
        row_count = self.cursor.executemany(sql_command, rows)
        self.cursor.commit()
        self.conn.autocommit = autocommit
        return row_count
 def insert_into_table(self, schema_name, table_name,
                       **column_names_values):
     command_name = f'insert_into_table'
     column_names = ', '.join(quote(column_names_values.keys()))
     column_placeholders = ', '.join([self.queryparm] *
                                     len(column_names_values))
     column_values = column_names_values.values()
     autocommit = self.conn.autocommit
     self.conn.autocommit = True
     sql_template = self.sql(command_name)
     sql_command = expand(sql_template)
     self.log(command_name, sql_command)
     self.cursor.execute(sql_command, *column_values)
     self.conn.autocommit = autocommit
Beispiel #5
0
def set_metadata(data, artist, album, track):
    os.system(' '.join([
        'mid3v2', '-a',
        quote(escape(artist.metadata[Metakey.name])), '-A',
        quote(escape(album.metadata[Metakey.name])), '-t',
        quote(escape(track.metadata[Metakey.name])), '-y',
        quote(album.metadata[Metakey.year]), '-T',
        quote(f'{track.metadata[Metakey.index] + 1}/{len(album.subnodes)}'),
        quote(escape(target_path(data, artist, album, track).as_posix()))
    ]))
Beispiel #6
0
def isitdown(args):
    if not args.strip():
        return "skriv in en url för att se om den är nere bara för dej"

    content = common.read_url("http://www.downforeveryoneorjustme.com/", common.quote(args))

    regex = re.search(r'<div id="container">\s*(.+?)\s*<p><a href="/">', content, re.DOTALL)

    # This will – and is supposed to – crash if the regex fails.
    text = regex.group(1).lower()

    if text.startswith("it's not just you"):
        return "sidan verkar vara nere!"
    elif text.startswith("it's just you"):
        return "sidan verkar inte vara nere"
    elif text.startswith('huh?'):
        return "du verkar inte ha skrivit in en url"
    else:
        raise AttributeError('error in .down plugin, major parse error')
    def capture_select(self,
                       schema_name,
                       table_name,
                       column_names,
                       last_timestamp=None,
                       current_timestamp=None):
        command_name = f'capture_select'
        column_names = ', '.join(quote(column_names))

        autocommit = self.conn.autocommit
        if self.platform == 'mssql':
            self.conn.autocommit = True

        sql_template = self.sql(command_name)
        # print(f'\ncapture_select.sql_template:\n{sql_template}\n')
        sql_command = expand(sql_template)
        self.log(command_name, sql_command)
        self.cursor.execute(sql_command)
        if self.platform == 'mssql':
            self.conn.autocommit = autocommit
        return self.cursor
Beispiel #8
0
 def setCodecs(self, codecs):
     self.attributes[IFrameStreamInfAttributes.CODECS.value] = common.quote(
         codecs)
Beispiel #9
0
 def setSubtitles(self, subtitles):
     self.attributes[StreamInfAttributes.SUBTITLES.value] = common.quote(
         subtitles)
Beispiel #10
0
 def setAudio(self, audio):
     self.attributes[StreamInfAttributes.AUDIO.value] = common.quote(audio)
Beispiel #11
0
 def setChannels(self, channels):
     self.attributes[MediaAttributes.CHANNELS.value] = common.quote(
         channels)
Beispiel #12
0
 def setCharacteristics(self, characteristics):
     self.attributes[MediaAttributes.CHARACTERISTICS.value] = common.quote(
         characteristics)
Beispiel #13
0
 def setInSteamId(self, id):
     self.attributes[MediaAttributes.INSTREAM_ID.value] = common.quote(id)
Beispiel #14
0
 def setLanguage(self, language):
     self.attributes[MediaAttributes.LANGUAGE.value] = common.quote(
         language)
Beispiel #15
0
 def setGroupId(self, groupId):
     self.attributes[MediaAttributes.GROUP_ID.value] = common.quote(groupId)
Beispiel #16
0
 def setUri(self, uri):
     self.attributes[MediaAttributes.URI.value] = common.quote(uri)
Beispiel #17
0
 def setVideo(self, video):
     self.attributes[IFrameStreamInfAttributes.VIDEO.value] = common.quote(
         video)
Beispiel #18
0
 def setAssocLanguage(self, assocLanguage):
     self.attributes[MediaAttributes.ASSOC_LANGUAGE.value] = common.quote(
         assocLanguage)
Beispiel #19
0
def wikipedia(args):
    request = common.url_request("http://h4xxel.org/failboat/wikipedia.php?nick=n&args=" + common.quote(args))
    with common.urlopen(request) as s:
        content = s.read().decode('utf-8', 'replace')

    return content
Beispiel #20
0
 def setName(self, name):
     self.attributes[MediaAttributes.NAME.value] = common.quote(name)
Beispiel #21
0
def lastfm(args):
  try:
    key = common.read_lineconf(common.read_file("lastfm-api-key"))[0]
    if not (len(key) == 32 and re.search(r'^[0-9a-f]+$', key)):
      raise IOError
  except (IOError, IndexError):
      raise IOError('Ingen nyckel för last.fm-API:et kunde hittas. Skapa filen lastfm-api-key med enbart nyckeln i sig i botens arbetskatalog.')

  try:
    content = common.read_url("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&limit=1&api_key={0}&user={1}".format(key, common.quote(args)))
  except HTTPError:
    return "Kunde inte hitta en last.fm-användare med namnet {}.".format(args)


  dom = xml.dom.minidom.parseString(content)
  latesttrack = dom.getElementsByTagName('track')[0]
  artist = latesttrack.getElementsByTagName('artist')[0].childNodes[0].data
  title = latesttrack.getElementsByTagName('name')[0].childNodes[0].data

  returnstr = "{0}".format(args)
  if (latesttrack.hasAttribute("nowplaying")):
    playstatus = "spelar just nu"
  else:
    playstatus = "spelade senast"

  return "{0} {1} {2} ({3}) -- History: http://www.last.fm/user/{0}/tracks".format(args, playstatus, title, artist)