view pixivimageposter.py @ 133:0d8eabdd12ab default tip

create: write H:MM:SS timestamps, add option to fill with gaussian-blur instead of black many albums are longer than one hour so writing H:MM:SS is a necessity. if anything there will just be verbose info that isn't important for my use-case. however the gaussian-blur is simply broken. It works, and it plays locally just fine, but YouTube in particular elongates the video to fit the full width. I'm not entirely sure why it does this, but it makes it useless and ugly.
author Paper <paper@tflc.us>
date Sat, 03 Jan 2026 20:25:38 -0500
parents 2aa9614cb39a
children
line wrap: on
line source

import glob
import random
import discord
from discord.ext import commands

help_command = commands.DefaultHelpCommand(no_category="Commands")
client = commands.Bot(command_prefix='!!', help_command=help_command)


@client.event
async def on_ready():
    print("Ready!")


@client.command(help="Posts a random image from my pixiv bookmarks")
async def pixiv(ctx):
    files = glob.glob("*.png")
    files.extend(glob.glob("*.jpg"))
    files.extend(glob.glob("*.gif"))
    file = random.choice(files)
    '''
    filenames are the default to pixivutil2, being
    "(id)_p(imgnumber) - (title).(ext)"

    link1 takes "file" and splits it with the character "_",
    giving you the id and the rest of the file

    link2 takes the rest of the file and splits it with a space,
    giving you the image number and other stuff we don't need
    it then removes "p" which just gets in the way, converts it to an integer,
    and adds 1 to it because pixivutil2 uses an initial zero in numbering
    '''
    link1 = file.split("_", 1)[0]
    link2 = int(file.split("_", 1)[1].split(" ", 1)[0].replace('p', ''))+1
    await ctx.send(f"https://pixiv.net/member_illust.php?mode=medium&illust_id={link1}, Image {str(link2)}", file=discord.File(file))

client.run("token")