Рубрики
Без рубрики

Взломщик шутит как услуга с Python

Рождественские крекеры из местного супермаркета часто имеют худшие шутки. Мы говорим: «Должно быть … Теги с Python, WebDev, Рождеством.

Рождественские крекеры из местного супермаркета часто имеют худшие шутки. Мы говорим: «Должен быть лучшим способом». Сохраните свои любимые шутки на это Рождество и услышать звук Guffaws 🤣, а не тишина криминальных лиц 😬.

Это поддерживается база данных, он в Интернете, это в Python … и нам не нужно было написать линию JavaScript – Да, мы использовали Наковальня :

Компонент холста

Наковальня Холст Компонент дает нам доступ к аписам рисования браузера, а также легкие события мыши – так что это казалось идеальным способом построить это приложение:

def draw_background(self):
    img = URLMedia('_/theme/cracker.png')
    c = self.canvas
    m = self.margin
    c.draw_image(img, m, 0, c.get_width() - 2*m, c.get_height())

def canvas_mouse_up(self, x, y, button, **event_args):
    """This method is called when a mouse button is pressed on this component"""
    if (x < self.margin):
        self.idx = (self.idx - 1) % len(self.jokes)
    elif x > self.w - self.margin:
        self.idx = (self.idx + 1) % len(self.jokes)
    self.write_joke()

Батареи включены

Наковальня Python в браузере поставляется с Python’s Батареи включены Философия, от ваших любимых библиотек Python до F-Strings.

import itertools
import textwrap
import random


class TellJokes(TellJokesTemplate):

    def __init__(self, **properties):
        self.init_components(**properties)

        self.jokes = list(app_tables.crackers.search())
        self.idx = 0
        self.QorA = itertools.cycle('QA') # switch between Q and A
        self.margin = 80
        self.laughing = '🤣😂😹😆🙈'
        self.text = 'Click To Start Telling Jokes 🎅'

    def write_joke(self, text=None):
        if text is None:
            QorA = next(self.QorA)
            text = f"{QorA}. {self.jokes[self.idx][QorA]}"
            if QorA is 'A':
                text += ' ' + random.choice(self.laughing) # add a random laugh emoji

        # wrap lines for readability
        wrapped_text = textwrap.wrap(text, int(self.canvas.get_width() - 2*self.margin)/35)))
        ...

Поделиться смехом

Я использовал наковальню Таблицы данных Служба для создания базы данных, затем построила интернет-интерфейс с помощью DataGrid составная часть. Теперь я могу отправить приложение в семью – надеюсь, что они придумывают некоторые лучшие шутки, чем я делал 🙄.

Просмотр исходного кода

Хотите поиграть с приложением самостоятельно? Проверьте исходный код:

Открытый исходный код >>

Оригинал: “https://dev.to/meredydd/cracker-jokes-as-a-service-with-python-2hna”