雑にChatGPTに投げて作ったNotepad++のPythonScriptを利用したプログラミング。全て、ChatGPTとの返答だけで作った。自分は、結果をあーしたい、こーしたい、ここを追加してくれ、しか命令していないのでめちゃくちゃ便利。
Notepad++の1行目にXboxGamePassのURLを追加して、PythonScriptを実行すると、ページのタイトルを適当にまとめてくれる。
# coding: utf-8
import requests
from bs4 import BeautifulSoup
import pyperclip
import sys
import urllib.parse
# Notepad++ と PythonScript 用のモジュール
sys.path.append('C:\\Program Files (x86)\\Notepad++\\plugins\\PythonScript\\lib')
import Npp
# URL をテキストエディタの1行目から読み込む
editor.gotoLine(0)
position_start = editor.positionFromLine(0)
position_end = editor.getLineEndPosition(0)
url = editor.getTextRange(position_start, position_end)
# Webページを取得
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
response = requests.get(url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
entry_main = soup.find('div', class_='entry-main entry-main--post entry-main--post-no-sidebar')
# 要素を格納するリスト
elements = []
# h2, p, li タグを順番に処理
for tag in entry_main.find_all(['h2', 'p', 'li']):
# <h2><strong>~~</strong></h2>
if tag.name == 'h2':
strong_tag = tag.find('strong')
if strong_tag:
elements.append(f'## {strong_tag.text}')
# <p><strong>~~</strong><br>
elif tag.name == 'p':
strong_tag = tag.find('strong')
if strong_tag:
elements.append(f'### {strong_tag.text}')
# <em>タグの処理を追加
em_tag = tag.find('em')
if em_tag:
search_query = em_tag.text
search_url = f'https://www.xbox.com/ja-jp/search?q={urllib.parse.quote(search_query)}'
markdown_link = f'[{search_query}]({search_url})'
elements.append(markdown_link)
# <li>~~</li>
elif tag.name == 'li':
elements.append(f'- {tag.text}')
# テキストエディタの終端に移動
editor.gotoPos(editor.getTextLength())
# 結果をテキストエディタに追加
output = '\n'.join(elements)
editor.addText('\n' + output)
else:
print(f'Error: Unable to retrieve the web page (Status code: {response.status_code})')
コメント