text: const got = require('@/utils/got');
  const cheerio = require('cheerio');
  const { art } = require('@/utils/render');
  const path = require('path');
  
  module.exports = async (ctx) => {
      const rootUrl = 'https://itch.io';
      const currentUrl = `${rootUrl}${ctx.path}`;
  
      const response = await got({
          method: 'get',
          url: currentUrl,
      });
  
      const $ = cheerio.load(response.data);
  
      let items = $('.title.game_link')
          .toArray()
          .map((item) => {
              item = $(item);
  
              return {
                  title: item.text(),
                  link: item.attr('href'),
              };
          });
  
      items = await Promise.all(
          items.map((item) =>
              ctx.cache.tryGet(item.link, async () => {
                  const detailResponse = await got({
                      method: 'get',
                      url: item.link,
                  });
  
                  const content = cheerio.load(detailResponse.data);
  
                  item.author = content('title').text().split('by ').pop();
                  item.description = art(path.join(__dirname, 'templates/description.art'), {
                      images: content('.screenshot')
                          .toArray()
                          .map((i) => content(i).attr('src')),
                      description: content('.formatted_description').html(),
                  });
  
                  return item;
              })
          )
      );
  
      ctx.state.data = {
          title: $('title').text(),
          link: currentUrl,
          item: items,
      };
  };
  