Skip to content

Instantly share code, notes, and snippets.

View s-hiiragi's full-sized avatar

s_hiiragi s-hiiragi

View GitHub Profile
@s-hiiragi
s-hiiragi / bookmarklet-create-issue-template-url.js
Last active October 18, 2024 18:43
(Redmine) 新しいチケットページの入力項目からチケットテンプレートURLを作成
javascript:(()=>{
const namedItems = Array.from(document.querySelectorAll('#issue-form [name]'))
.filter(e => e.value)
.filter(e => ! e.type?.match(/^(hidden|submit|button)$/))
.filter(e => ! e.name.match(/^issue\[(project_id|status_id|priority_id|start_date)\]$/))
;
const search = namedItems
.map(e => `${encodeURIComponent(e.name)}=${encodeURIComponent(e.value)}`)
.join('&')
@s-hiiragi
s-hiiragi / print_attrs.py
Created September 19, 2022 17:16
オブジェクトのメソッドとプロパティを継承元ごとに表示
def print_attrs(value):
from functools import reduce
mro = type(value).mro()
attrsets = [set(dir(x)) for x in mro] + [set()]
ownattrsets = [x - attrsets[i+1] for i,x in enumerate(attrsets) if i < len(mro)]
for type_, ownattrset in zip(mro, ownattrsets):
print(type_.__name__)
print(' ', list(ownattrset))
@s-hiiragi
s-hiiragi / bookmarklet-amazon-orders.js
Last active September 10, 2022 21:01
Amazonの注文履歴を取得するブックマークレット
javascript:(()=>{
const orders = Array.from(document.querySelectorAll('#ordersContainer > .order'));
let records = orders.flatMap(order => {
const id = order.querySelector('.yohtmlc-order-id .value').textContent.trim();
const date = order.querySelector('.a-span3 .value').textContent.trim();
const total = order.querySelector('.yohtmlc-order-total .value').textContent.trim();
const itemTitles = Array.from(
order.querySelectorAll('.yohtmlc-item > .a-row:nth-child(1)')).
map(e => e.textContent.trim());
@s-hiiragi
s-hiiragi / HSPの演算子の優先順位.md
Created January 14, 2022 17:32
HSPの演算子の優先順位

HSPの演算子の優先順位

演算子の一覧

演算子 種類
+,-,*,/ 加算,減算,乗算,除算
&,|,^ 論理演算(and,or,xor)
\ 割り算の余り
=,<,>,! 条件式(同じ,小さい,大きい,同じでない)
@s-hiiragi
s-hiiragi / while_and_for.hsp
Created January 6, 2022 03:59
break/continueを使えるwhile/for
#define global _while(%1) repeat : if (%1) == 0 : break
#define global _for(%1,%2=0,%3=0,%4=1) %1=(%2) %c repeat %c if cnt {%1+=(%4)} %c if (%1) == (%3) {break}
mes "break/continueを使えるwhileのサンプル"
i = 0
_while i < 4
mes i
i++
loop
@s-hiiragi
s-hiiragi / main.py
Created December 28, 2021 16:06
(Python) コマンドライン引数からログ出力レベルを変更するサンプル
# usage:
# python main.py --loglevel <level>
#
# level:
# CRITICAL
# ERROR
# WARNING
# INFO
# DEBUG
@s-hiiragi
s-hiiragi / conf.json
Created December 28, 2021 15:39
(Python) 外部ファイルからログレベルを変更するサンプル
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default": {
"format": "%(levelname)s:%(name)s:%(message)s"
}
},
"handlers": {
"console": {
@s-hiiragi
s-hiiragi / iterate_through_table_containing_merged_cells.bas
Created December 15, 2021 13:44
Iterate through a table containing merged cells
Sub IterateThroughTableContainingMergedCells()
Dim t As Table
Dim i As Long
Dim j As Long
For i = 1 To ActiveDocument.Tables.Count
Set t = ActiveDocument.Tables(i)
Debug.Print "Table(" & i & "): rows=" & t.Rows.Count & ", columns=" & t.Columns.Count
@s-hiiragi
s-hiiragi / busybox.cmd
Created September 13, 2021 21:40
busybox-w32のパスを通すコマンド
@echo off
if "%~1" == "addpath" goto ADDPATH
if "%~1" == "help" goto HELP
if "%~1" == "-h" goto HELP
if "%~1" == "--help" goto HELP
if "%~1" == "/?" goto HELP
if "%~1" == "-?" goto HELP
goto :EOF
@s-hiiragi
s-hiiragi / gomibako.bat
Created September 13, 2021 21:19
ごみ箱を開くバッチファイル
@explorer shell:RecycleBinFolder