示例#1
0
    def PrepareImage(self, message: Tuple[str, str]) -> None:
        imageFromS3 = S3.readImage(self.GetImagePath(message[0]))
        img = Image.open(BytesIO(imageFromS3))
        editable_img = ImageDraw.Draw(img)
        image_width = img.width
        image_height = img.height

        font = S3.readFont("fonts/DejaVuSans.ttf")
        myFont = ImageFont.truetype(font, 40)
        w, h = myFont.getsize(message[0])
        w2, h2 = myFont.getsize(message[1])
        if w > image_width - 200:
            myFont = ImageFont.truetype(font, 30)
            w, h = myFont.getsize(message[0])
            w2, h2 = myFont.getsize(message[1])

        editable_img.text(((image_width - w) / 2, image_height - 96),
                          message[0],
                          fill="white",
                          font=myFont)
        editable_img.text(((image_width - w2) / 2, image_height - 50),
                          message[1],
                          fill="white",
                          font=myFont)
        img.save("result.png", "PNG")
 def __init__(self, bot):
     self.bot = bot
     self.battle = ""
     response = S3.read('soldiers.txt')
     self.soldiers = jsonpickle.decode(response['Body'].read().decode('utf-8'), keys=True)
     response2 = S3.read('prawda.txt')
     self.opened = json.loads(response2['Body'].read().decode('utf-8'))
 async def otworz(self, ctx, battle_link="A wtedy Jezus rzekł: Idźcie i nabijajcie expa."):
     """Prawidłowy sposób użycia: @otworz link\nlink - link do bitwy w eRepie [albo jakis komentarz zamiast linku] [opcjonalny argument].
     Pozwala żołnierzom używać komend join i finish.
     Jeśli użyjemy cudzysłowów, możemy do bitwy dodać jakiś komentarz, np. "link all div all in".
     Możemy też w cudzysłowiu dodać sam komentarz."""
     if self.opened:
         await ctx.send("Zbjumrka jest już otworzona!")
         return
     self.opened = True
     self.battle = battle_link
     await ctx.send("@everyone dołączamy i bijemy wedle wytycznych: " + battle_link)
     S3.write('prawda.txt', json.dumps(self.opened))
 async def zamknij(self, ctx):
     """Prawidłowy sposób użycia: @zamknij\nZabiera możliwość używania komend @join i @finish.
     Zeruje zapisany poziom XP żołnierzy [hity zostają w bazie]. Jeśli ktoś zapomniał użyć @finish to ucina zrobione na zbiórce hitki :(."""
     if self.opened:
         self.opened = False
         self.battle = ""
         for item in list(self.soldiers.values()):
             item.xp_start = 0
         await ctx.send("```\nDziękujemy za udział w zbiórce!```")
         self.logsoldiers()
         S3.write('prawda.txt', json.dumps(self.opened))
     else:
         await ctx.send("```\nBrak otwartych zbiórek, proszę mnie nie molestować.```")
示例#5
0
    def connect(self):
        self.conn = S3.AWSAuthConnection(self.options['aws_key'],
                                         self.options['aws_secret_key'])

        res = self.conn.check_bucket_exists(self.options['bucket'])

        if res.status != 200:
            res = self.conn.create_bucket(self.options['bucket'])
            if res.http_response.status != 200:
                raise S3Error, 'Unable to create bucket %s' % (
                    self.options['bucket'])

        return True
示例#6
0
 def __init__(self, bot):
     self.bot = bot
     self.punktyTGS = {}
     response = S3.read('punkty.txt')
     self.punktyTGS = json.loads(response['Body'].read().decode('utf-8'))
     random.seed()
示例#7
0
 def logsoldiers(self):
     S3.write('punkty.txt', json.dumps(self.soldiers))
     print(json.dumps(self.punktyTGS))
 def logsoldiers(self):
     S3.write('soldiers.txt', jsonpickle.encode(self.soldiers, keys=True, indent=4))
     print(jsonpickle.encode(self.soldiers, keys=True, indent=4))
 async def zapisz(self, ctx):
     """Prawidłowy sposób użycia: @zapisz
     Zapisuje obecnych w bazie żołnierzy na trwałym pliku."""
     S3.write('soldiers.txt', jsonpickle.encode(self.soldiers, keys=True, indent=4))
示例#10
0
 def SaveSoldiersData(self, data: Dict[int, SoldierData]) -> None:
     S3.write('stats.txt', json.dumps(data))
示例#11
0
 def ReadSoldiersDataFromDatabase(self) -> Dict[int, SoldierData]:
     response = S3.read('stats.txt')
     return json.loads(response['Body'].read().decode('utf-8'))
示例#12
0
 def SaveSoldiersIds(self, ids: Dict[str, List[str]]) -> None:
     S3.write('spying-ids.txt', json.dumps(ids))
示例#13
0
 def ReadSoldiersIdsFromDatabase(self) -> Dict[str, List[str]]:
     response = S3.read('spying-ids.txt')
     return json.loads(response['Body'].read().decode('utf-8'))
示例#14
0
            content.content_type
        except AttributeError, e:
            guess_type = True

        if guess_type or not content.content_type:
            import mimetypes
            content_type = mimetypes.guess_type(filename)[0]
            if content_type is None:
                content_type = 'text/plain'
        else:
            content_type = content.content_type

        perm = self.options['default_perm']

        res = self.conn.put(self.options['bucket'], filename,
                            S3.S3Object(data), {
                                'x-amz-acl': perm,
                                'Content-Type': content_type
                            })

        if res.http_response.status != 200:
            raise S3Error, 'Unable to upload file %s: Error code %s: %s' % (
                filename, self.options['bucket'], res.body)

        content.filename = filename
        content.url = self.url(filename)

        return filename

    def delete(self, filename):
        res = self.conn.delete(self.options['bucket'], filename)