[Python]AmazonアソシエイトをHUGOブログに貼るのを少し簡単に

HUGOの記事にamazonアソシエイトリンクを貼る際に、取得したリンクを加工するのが面倒だったので、pythonで書きました tkinterでGUIにしています なんてことはない、中身は文字列を切って貼ってをしているだけです コマンドで起動するのは面倒なので、バッチファイルで起動するようにしています 作ろうとしているリンク こんな見た目 古風だけど自分はこれが好き 実際のリンクはこれ↓(リンク切れていたらスミマセン) 使い方 「Amazonアソシエイトツールバー」の「テキストと画像」タブを開いて、生成されたリンクをコピー(下画像の「これをコピー」部分) pythonプログラムを起動するとこれが現れる↓ コピーしたリンクをそのまま貼り付ける エンターキーを押すと、クリップボードにコピーされる 記事内に貼り付ける コピーされた文字列例↓(表示の都合上、先頭の{は全角になっていますが、実際は半角{です) {{< Amazon src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=アソシエイトID&language=ja_JP&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B088PGN64G&linkId=2ef7d1928670c9537cf1976fdc5a5b37" >}} クリアボタンを押すと消える 2回目以降は「クリップボードにコピーしました!」は消えないので注意 プログラム クリップボードを扱うライブラリー(pyclip)はインストールが必要です 表示の都合上、一部の{は全角になっていますが、実際は半角{です。使用の際は半角{に直してお使いください # -*- coding: utf-8 -*- """ アマゾンの商品リンクをhugoに貼る形に変換する エンターで変換 クリップボードにコピーされる """ import tkinter as tk import pyclip root = tk.Tk() root.geometry('500x90') root.title('Amazon affiリンク変換(hugo用)') def func(event): global label1 text1 = entry1.get() # amazon アソシエイトツールバー テキストと画像のリンク target = 'src="' # src="より後ろを抽出 idx = text1.find(target) r = text1[idx + len(target):] r = r[:-10] # 後ろの ></iframe> を削除 r = 'src="' + str(r) # 整形 r = '{{< Amazon ' + r + ' >}}' # 整形 pyclip....

2022/06/23 · Last updated on 2023/09/23 · 1 min · 135 words

HUGO ROBUST 設定

HUGOの設定を掲載します。 自分の備忘録要素が強いのでHUGO以外の周辺設定も含みます。 2023/08/03 変更 githubに公開しました 2023/06/25 変更 googleAnalyticsのGA4対応 やっと対応 config.tomlを弄るだけで済みました disqus無効化 config.toml全容 githubでご確認ください wordpressからの移行 もともと、HUGO導入はlifehack.jpのこちら↓の記事がきっかけです https://lifehacking.jp/2020/05/goodbye-wordpress-hello-hugo/ wordpress to hugo exporter を使ってざっくり変換し、微調整はpythonでスクリプトを書いて対応しました テーマ robust テーマはrobustを利用させていただいてます git clone ではなく、ダウンロードしています。 最初はgit clone でテーマを引っ張ってきましたが、コミットできず、エラーがでたのでやめました。 そもそもgitを使い慣れていませんので、zipをダウンロードして置き直しました。 これでコミットできたのでそのままとしています。 robustのサムネイル画像 static/images に配置 記事のサムネイルは、フロントマターの thumbnail で指定できます。 指定しないと、デフォルトのサムネイルが設定されます。画像ファイルは、 static/images/default.jpg に配置してください。 デフォルトのサムネイルがない場合、テーマで用意されているデフォルトサムネイルが設定されます。 テーマ選別 robust以前に試したいくつかを紹介します ananke hugoのquick startはanankeが使われています 見た目が好きじゃない サムネイル画像の指定が、frontmatterでfeatured_imageでいけ、記事と同じフォルダに置くことができる Tranquilpeak https://zenn.dev/harachan/articles/a043e9a756cae4 デザインは一番好き 解説ページが多い サムネイル表示できない featured imageだとだめ HUGO バージョン windows10,11で使用 ポータブル版 binフォルダはpathを通す # hugo version hugo v0.92.0-B3549403+extended windows/amd64 BuildDate=2022-01-12T08:23:18Z VendorInfo=gohugoio ローカルで確認 # draft記事も表示 以下のいずれか hugo server -D hugo -D server # draft記事は非表示(公開した状態と同じ) hugo server コマンドを実行したあと以下にアクセス...

2022/04/13 · Last updated on 2023/09/22 · 4 min · 753 words

Synology DS118 購入

MR2200acの簡易NAS機能を使い、NASを使用していたが、Synologyの1ベイNAS DS118を購入した。 買ったもの、用意したもの NAS本体 DS118 2万円 購入 HDD 海門 CMR 2TB 5900rmp 7,500円 購入 USB3.0外付けHDDのケース 3,000円 手持ち 外付けHDDケースの中のHDD 2TB 手持ち BuffaloNASのHDDを流用 用途・要求 パソコン外の大容量データ保管庫 Windows,Mac,Linuxがある どのデバイスからも接続可能とする iPhoneの写真をバックアップ 劣化なしで google photo有料化の代用 Synology photoがgoogleフォトっぽくて良い https://www.synology.com/ja-jp/DSM70/SynologyPhotos 消費電力をできるだけ減らす 寿命を伸ばす NASの運用方法 1ベイNAS + USB外付けHDDにバックアップ DSMのHyper Backupでバックアップ 1時間ごと https://www.Synology.com/ja-jp/dsm/feature/hyper_backup 不在時は電源OFF 帰宅時に電源ON 消費電力を減らす、寿命を伸ばすため 電源ボタン長押しで切れるのでそんなに面倒ではない デスクのすぐ横に置いてあるので、アクセスは簡単 遠くに置いてある人なら面倒かも バックアップが1時間ごとなので、それが動作していないことを見計らって実施 この構成のデメリット バックアップ(1時間毎)までの間にNASのHDDがお亡くなりになった場合にデータ欠損が生じる しょうがない 諦める デメリットの解消方法 → 不採用 2ベイでRAID1 + 外付けHDDにバックアップ HDDのロットを変えれば(購入時期をずらせば)、RAIDのHDDの同時故障は回避可能 消費電力が増えるし、場所も取るし、そこまでの構成は不要と判断 不採用 検討(時系列) 2ベイでRAID1(ミラーリング) 1台がお亡くなりになってももう一台が生き残ってデータ欠損なし つまりバックアップをイメージしていた(この時点で) DS220+ (2ベイ)を購入 SynologyのhybridRAID(RAID1相当)を想定 Synologyを選んだのは情報が多いことと、Synology製のMR2200ac をすでに使っているから RAIDはバックアップにならないことを知る RAIDは冗長化技術 システムを止めない技術 バックアップではない RAIDはやめた DS220+ でBasic設定(RAIDではなく)とし、別々のドライブとして使うことを検討 せっかく DS220+ を買ったので もくろみ 一つはメイン、もう一台はバックアップ用 ハイバーネーション機能で不使用時はスピンダウンさせHDDをスリープ 消費電力、寿命的、音の低減のため バックアップ用HDDはバックアップ時だけ起きてほしく、普段はスリープ(スピンダウン)してほしかった しかし DS220+ は2台HDDを個別にスピンアップ、ダウンができない 同時スピンアップ、ダウンのみ USB接続HDDなら別でスピンアップ、ダウンできる 参考 : https://tomo256....

2022/01/06 · Last updated on 2023/09/25 · 1 min · 154 words

【Python】pandas DataReaderでFREDから現在の為替を取得

Pandas DataReaderを用いてFREDから為替データを取得します。 例として豪ドル円を取得します。 FREDからは米ドル円しか取得できない FREDからは円との通貨ペアは米ドル円しか取得できません。 FREDはこちら↓ では豪ドル円が欲しい場合はどうしましょう? 答えは簡単で、米ドル円と豪ドル米ドルの2つを取得して計算するだけです。 米ドルとの通貨ペアはFREDで取得できるので、同様にどの通貨情報も得られます。 米ドル円 : DEXJPUS (円/米ドル) 豪ドル米ドル : DEXUSAL (米ドル/豪ドル) 豪ドル円 : DEXJPUS (円/米ドル) × DEXUSAL (米ドル/豪ドル) = (円/豪ドル) ・・・1豪ドル○○円 プログラム 為替取得は本日までとしています。 しかしFREDの最新データが本日分まで出ていないとエラーになります。 ですので、本日から15日前までの値を取得して、その中で最新値を見ています。 """ FREDから現在価格を取得 """ import pandas_datareader.data as pdr import datetime as dt # 計算したいペア 任意の名前 showpare = 'JPY_AUD' dateend = dt.date.today() # 取得範囲のエンドは本日まで datestart = dateend - dt.timedelta(days = 15) tickerlist = ['DEXJPUS','DEXUSAL'] # 取得するtickerのlist # DEXJPUS : JPY/USD # DEXUSAL : USD/AUD # DEXUSNZ : USD/NZD # DEXCAUS : CAD/USD # Fredからレートを取得 FREDdf = pdr....

2021/10/24 · Last updated on 2021/10/24 · 1 min · 137 words

【ラズパイで猫ちゃんカメラ】その6 LINE NotifyのAPI制限を確認する

前回 前回はpythonで定期的な動作を実装しました。 これで例えば10分毎に撮影し、画像をLINEすることができます。 今回 LINE NotifyのAPI制限を確認します。 画像のアップロード枚数制限やAPIのコール回数制限があります。 テストで画像を送りまくっていると制限にかかり、送れなくなります。 突然送れなくなるので、注意が必要です。 APIコール回数は1000回ですのでそうそう消費しないと思います。 ですが、画像のアップロード枚数制限は50枚(1時間あたり)です。 案外すぐ達してしまうのでモニターすることをオススメします。 ドキュメントのAPI Rate Limitに記載があります。 各サービスごとに1時間にAPIをcallできる回数の上限が設定されています。 デフォルトは1000回に設定されています。 上限はaccess tokenごとに設定されています。 API Rate Limitのstatusは、APIの以下のresponse headerで確認することができます。 API Rate Limitの確認方法 こちらを参考にさせていただきました。ありがとうございます(^^) # line-notify-limit.py import requests token = 'あなたの取得したトークン' api = 'https://notify-api.line.me/api/notify' message = '\n\nLIMIT CHECK' headers = {'Authorization': 'Bearer'+' '+token} data = {'message': message} resp = requests.post(api,headers=headers,data=data) print(message) # APIコール残 ratelimit = resp.headers.get("X-RateLimit-Limit") # max API call ratelimit_remaining = resp.headers.get("X-RateLimit-Remaining") # API call remaining print('API call remaining : {} / {}'....

2021/10/19 · Last updated on 2023/09/23 · 1 min · 131 words