Exemple #1
0
  def __init__(self,\
               weather,\
               size         = (600,800),\
               forecastDays = 4,\
               path         = './images/screen.png',\
               font         = "/usr/share/fonts/dejavu/DejaVuSans.ttf",\
               iconSize     = (50,50)):

    self.path         = path
    self.iconSize     = iconSize 
    self.font         = font
    self.forecastDays = forecastDays
    self.weather      = weather
    if weather.data == None:
      try:
        image   = Block(path=path)
      except IOError:
        image   = Block(size)
      message   = Block((image.size[0],image.size[1]*3/8 - iconSize[1]))
      message.text("Cannot download new weather data\n" + \
                   "\n" + \
                   "Check internet connection", \
                   fontSize = 20,\
                   fontPath = self.font)
      if image.size[1] >= size[1]:
        coords = (size[0]-message.size[0],size[1]-message.size[1])
        image.block.paste(message.block,coords)
      else:
        image.join(message,"down")
    else:
      right  = self.__icon(weather.conditions('icon_url'))
      self.icoSize = right.size
      image = self.__time((size[0]/2,right.size[1]))
      image.join(self.__temperature((size[0]/2,size[1]/4)),"down")
      right.join(self.__windAndPressure((size[0]/2,size[1]/4),trend=False),"down")
      image.join(right,"right")
      image.join(self.__conditions((size[0],size[1]/8)),"down")
      image.join(self.__forecast((size[0],size[1]/4)),"down")
      image.expand(size)
    image.save(path)
    self.path = path
Exemple #2
0
  def __icon(self,url):
    splitted = url.split("/")
    name = splitted[-1]
    try:
      path = "./images/" + name.split(".")[0] + ".png"
      icon = Block(path=path)
    except IOError:
      splitted[-2] = "j"
      url = "/".join(splitted)
      f = open("./images/" + name,'wb')
      f.write(urlopen(url).read())
      f.close()
      path= "./images/" + name
      icon = Block(path=path)
      icon.grayscale(0)
      if icon.size[0] != self.iconSize[0] or icon.size[1] != self.iconSize[1]:
        icon.resize(self.iconSize)
      os.remove(path)

    icon.save(path)
    return icon