オクシディアン10月のテンプラ
16797 ワード
私は2つ小さなTemplater スクリプトObsidian October *, 両方の独自のPythonのマイクロAPIです.つは、YouTubeのビデオを転写し、1つから1日の引用を取得DailyZen . プラグインの人々が提出しているようにどこにも複雑ではありませんが、すべて同じに参加することが良い感じです.
* Obsidian ノートを一緒にメモをリンクし、それらを視覚化する小説の方法がたくさんあるアプリを取っている.それは完全に無料ですので、もしあなたに興味をそそられるそれを試してください.
あなたのジャーナルの毎日の禅引用
最初にAPIが来て、Replitでホストされ、Pythonとフラスコで書かれています.私はJavaScriptのために人気があるウェブスクレーパーより簡単に働くために、美しいスープ(ウェブ掻き取りのためのパイソン図書館)を見つけます.
何もこれに渡される必要がないので、それはかなり簡単です.
その後テンプルでちょうどそれを呼び出す
あなたのノートでYouTubeの転写物を取得
これは少しトリッキーです.
まず、テンプラのシステムプロンプトは、YouTubeのURLを取得します.それから、URLは確かめられます、我々がビデオへのリンクであることを確認してください、そして、ビデオのIDはサーバーに送られます.
舞台裏では、Replitは大きなReadableStreamをchunkでトランスクリプトとともに送り返します.それらのチャンクは、ストリームが完了するまで集められます.
これを行うにはいくつかの方法がありますが、テンプテーターのマークダウンファイル自体のURLをユーザに促すのが最も簡単です.
それらを試してください!
私のサーバーを使用する場合は、自分自身を助けて!このチュートリアルのJavaScript部分だけをコード化します.もちろん、彼らはいつでも消えるかもしれません--これらはちょうど楽しいプロジェクトのためにありました.
* Obsidian ノートを一緒にメモをリンクし、それらを視覚化する小説の方法がたくさんあるアプリを取っている.それは完全に無料ですので、もしあなたに興味をそそられるそれを試してください.
あなたのジャーナルの毎日の禅引用
最初にAPIが来て、Replitでホストされ、Pythonとフラスコで書かれています.私はJavaScriptのために人気があるウェブスクレーパーより簡単に働くために、美しいスープ(ウェブ掻き取りのためのパイソン図書館)を見つけます.
import requests
from bs4 import BeautifulSoup
from markdownify import markdownify as markdownify
from flask import Flask
from flask_cors import CORS
import re
import prettierfier
app = Flask("app")
CORS(app)
@app.route("/")
def output():
URL = "https://dailyzen.com"
page = requests.get(URL)
soup = BeautifulSoup(page.content, "html.parser")
html = f"{soup('blockquote')[0]}{soup('cite')[0]}"
pretty_html = prettierfier.prettify_html(html)
markdown = markdownify(pretty_html, convert=['blockquote', 'cite'])
quote = re.sub(">", "", markdown)
print(quote)
return f"> {quote.lstrip().rstrip()}"
app.run(host="0.0.0.0", port=8080)
私は、何かを構成しなければならないことなく特定のサーバーを「常に」維持します.何もこれに渡される必要がないので、それはかなり簡単です.
async function dailyzen() {
const result = await fetch("https://DailyZen.bathrobe.repl.co");
const reader = result.body.getReader();
const { value } = await reader.read();
const quote = new TextDecoder().decode(value);
return quote;
}
module.exports = dailyzen;
返信してくださいReadableStream
, それで、あなたは通常、それをバイトサイズのチャンクでファイルにインポートする必要があります.引用符が短いので、完全に最初のチャンクに来る.その後テンプルでちょうどそれを呼び出す
tp.user.dailyzen()
. VoilaあなたのノートでYouTubeの転写物を取得
これは少しトリッキーです.
まず、テンプラのシステムプロンプトは、YouTubeのURLを取得します.それから、URLは確かめられます、我々がビデオへのリンクであることを確認してください、そして、ビデオのIDはサーバーに送られます.
舞台裏では、Replitは大きなReadableStreamをchunkでトランスクリプトとともに送り返します.それらのチャンクは、ストリームが完了するまで集められます.
async function transcript(str) {
let url = new URL(str);
let videoID;
//test and make sure it's a youtube URL
if (url.host == "www.youtube.com" && url.pathname == "/watch") {
videoID = url.search.slice(3);
//send videoID as POST request to replit
const res = await fetch("https://YTTranscript.bathrobe.repl.co", {
method: "post",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify({
ID: videoID,
}),
});
//replit returns a readablestream
const reader = res.body.getReader();
let result = "";
let transcriptOutput = "";
await reader.read().then(function processText({ done, value }) {
if (done) {
transcriptOutput = result;
return transcriptOutput;
}
let stringValue = new TextDecoder("utf-8").decode(value);
result += stringValue;
return reader.read().then(processText);
});
return transcriptOutput;
} else {
console.log("nope");
return "I can't recognize this as a YouTube link, sorry!";
}
//get the markdown transcript back and return it
}
module.exports = transcript;
舞台裏では、ここで我々は、トランスクリプトを取得返信です.があるpip
パッケージは本当に簡単です.from flask import Flask
from flask import request
from flask_cors import CORS
from youtube_transcript_api import YouTubeTranscriptApi
app = Flask("app")
CORS(app)
@app.route("/", methods=["POST"])
def output():
ytID = request.json.get("ID")
transcriptData = YouTubeTranscriptApi.get_transcript(ytID)
transcript = ""
for dict in transcriptData:
transcript += dict["text"] + " \n"
return transcript
app.run(host="0.0.0.0", port=8080)
トランスクリプトパッケージによって返されるすべての文字列の最後に改行が存在することに注意してください.これを行うにはいくつかの方法がありますが、テンプテーターのマークダウンファイル自体のURLをユーザに促すのが最も簡単です.
<% await tp.user.transcript(tp.system.prompt("YouTube URL Here"))%>
.それらを試してください!
私のサーバーを使用する場合は、自分自身を助けて!このチュートリアルのJavaScript部分だけをコード化します.もちろん、彼らはいつでも消えるかもしれません--これらはちょうど楽しいプロジェクトのためにありました.
Reference
この問題について(オクシディアン10月のテンプラ), 我々は、より多くの情報をここで見つけました https://dev.to/joeholmes/templater-treats-for-obsidian-october-2d37テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol