Skip to content

Instantly share code, notes, and snippets.

View GitHub30's full-sized avatar
🌴
On vacation

GitHub30

🌴
On vacation
  • Osaka, Japan
View GitHub Profile
@GitHub30
GitHub30 / n2.py
Last active August 7, 2022 08:32 — forked from MarcAlx/notification.py
Send Windows notifications from python3
import winsdk.windows.ui.notifications as notifications
import winsdk.windows.data.xml.dom as dom
from winsdk.windows.ui.notifications import ToastActivatedEventArgs, ToastDismissedEventArgs, ToastFailedEventArgs
# create notifier
nManager = notifications.ToastNotificationManager
notifier = nManager.create_toast_notifier()
# define your notification as string
tString = """
from win10toast import ToastNotifier
toaster = ToastNotifier()
toaster.show_toast("Example two",
"This notification is in it's own thread!",
icon_path=None,
duration=5,
threaded=True)
# pip install winsdk_toast
from winsdk_toast import Notifier, Toast
notifier = Notifier('程序名 applicationId')
toast = Toast()
toast.add_text('第一行 1st line')
toast.add_action('Button')
notifier.show(toast, handle_activated=lambda x: print(x))
xml.match(/github.com\/[\w-]+\/[\w-]+/g)
xml.match(/github.io/g)
const applicationServerKey = 'BDd3_hVL9fZi9Ybo2UUzA284WG5FZR30_95YeZJsiApwXKpNcF1rRPF3foIiBHXRdJI2Qhumhf6_LFTeZaNndIo'
async function send() {
let reg = await navigator.serviceWorker.getRegistration()
if (!reg) reg = await navigator.serviceWorker.register('./service-worker.js')
let subs = await reg.pushManager.getSubscription()
if (!subs) subs = await (await navigator.serviceWorker.ready).pushManager.subscribe({ userVisibleOnly: true, applicationServerKey })
const subscription = subs.toJSON()
await fetch('https://web-push-server.vercel.app/api/send', {
// https://github.com/search?q=applicationServerKey+publicKey&type=code
// https://github.com/gauntface/simple-push-demo/blob/bee57021049dbfbba987a74de5bd01d5a9e96a0f/frontend/scripts/encryption/helpers.js
function base64UrlToUint8Array(base64UrlData) {
const padding = '='.repeat((4 - base64UrlData.length % 4) % 4);
const base64 = (base64UrlData + padding)
.replace(/-/g, '+')
.replace(/_/g, '/');
const rawData = window.atob(base64);

Ubuntuの通知はDeleteで消す.md

Notification.requestPermission()
new Notification("こんにちは!")
  • バックグラウンドアプリ すべてオフ
  • パフォーマンスオプション - カスタム
    • スクリーンフォントの縁を滑らかにする
  • スタートアップアプリ すべてオフ
setInterval(() => {
const jsi = document.querySelector('.js-submittable-input')
if (!jsi) return
const jct = document.querySelector('.js-compose-text')
if (jct && !jct.value) {
jct.value = ' ' + jsi.value
jct.selectionEnd = 0
}
}, 1000)