npub1xu…g43rm on Nostr: #[tokio::main] #[cfg(feature = "nostr")] #[allow(unused_imports)] async fn main() { ...
#[tokio::main]
#[cfg(feature = "nostr")]
#[allow(unused_imports)]
async fn main() {
use get_file_hash_core::repository_announcement;
use get_file_hash_core::get_file_hash;
use nostr_sdk::Keys;
use sha2::{Digest, Sha256};
use nostr_sdk::EventId;
use std::str::FromStr;
let keys = Keys::generate();
let relay_urls = get_file_hash_core::get_relay_urls();
let project_name = "my-awesome-repo-example";
let description = "A fantastic new project example.";
let clone_url = "git@github.com:user/my-awesome-repo-example.git";
// Dummy EventId for examples that require a build_manifest_event_id
const DUMMY_BUILD_MANIFEST_ID_STR: &str = "f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0";
let dummy_build_manifest_id = EventId::from_str(DUMMY_BUILD_MANIFEST_ID_STR).unwrap();
// Example 1: Without build_manifest_event_id
println!("Publishing repository announcement without build_manifest_event_id...");
repository_announcement!(
&keys,
&relay_urls,
project_name,
description,
clone_url,
"../Cargo.toml" // Use a known file in your project
);
println!("Repository announcement without build_manifest_event_id published.");
// Example 2: With build_manifest_event_id
println!("Publishing repository announcement with build_manifest_event_id...");
repository_announcement!(
&keys,
&relay_urls,
project_name,
description,
clone_url,
"../Cargo.toml", // Use a known file in your project
Some(&dummy_build_manifest_id)
);
println!("Repository announcement with build_manifest_event_id published.");
}
#[cfg(not(feature = "nostr"))]
fn main() {
println!("This example requires the 'nostr' feature. Please run with: cargo run --example repository_announcement --features nostr");
}
Published at
2026-04-04 01:40:02 UTCEvent JSON
{
"id": "4fe133bc7f33e7431e6a61f6415196f3640f121fdb5a0ed7ed8dc09de057bda6",
"pubkey": "37306250e62aafbe17f1fd1ee25a539f268e044d7516734c6e389c6de7273ac9",
"created_at": 1775266802,
"kind": 1,
"tags": [
[
"file",
"examples/repository_announcement.rs"
],
[
"version",
"0.3.3"
]
],
"content": "#[tokio::main]\n#[cfg(feature = \"nostr\")]\n#[allow(unused_imports)]\nasync fn main() {\n use get_file_hash_core::repository_announcement;\n use get_file_hash_core::get_file_hash;\n use nostr_sdk::Keys;\n use sha2::{Digest, Sha256};\n use nostr_sdk::EventId;\n use std::str::FromStr;\n\n let keys = Keys::generate();\n let relay_urls = get_file_hash_core::get_relay_urls();\n let project_name = \"my-awesome-repo-example\";\n let description = \"A fantastic new project example.\";\n let clone_url = \"git@github.com:user/my-awesome-repo-example.git\";\n \n // Dummy EventId for examples that require a build_manifest_event_id\n const DUMMY_BUILD_MANIFEST_ID_STR: \u0026str = \"f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0\";\n let dummy_build_manifest_id = EventId::from_str(DUMMY_BUILD_MANIFEST_ID_STR).unwrap();\n\n // Example 1: Without build_manifest_event_id\n println!(\"Publishing repository announcement without build_manifest_event_id...\");\n repository_announcement!(\n \u0026keys,\n \u0026relay_urls,\n project_name,\n description,\n clone_url,\n \"../Cargo.toml\" // Use a known file in your project\n );\n println!(\"Repository announcement without build_manifest_event_id published.\");\n\n // Example 2: With build_manifest_event_id\n println!(\"Publishing repository announcement with build_manifest_event_id...\");\n repository_announcement!(\n \u0026keys,\n \u0026relay_urls,\n project_name,\n description,\n clone_url,\n \"../Cargo.toml\", // Use a known file in your project\n Some(\u0026dummy_build_manifest_id)\n );\n println!(\"Repository announcement with build_manifest_event_id published.\");\n}\n\n#[cfg(not(feature = \"nostr\"))]\nfn main() {\n println!(\"This example requires the 'nostr' feature. Please run with: cargo run --example repository_announcement --features nostr\");\n}\n",
"sig": "3f51fa7bdc366a6f81dbd6e05d0f1143c1b05eecffa23cd1c74934c1de03208256e33c30d6d3895112aadc019a3539962085071412de61c719e5a7a74781e3b1"
}