Fix all warnings

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin 2024-04-01 10:16:35 -07:00
parent 4bd01682da
commit 6222a7db63
8 changed files with 26 additions and 47 deletions

View File

@ -1,9 +1,4 @@
use crate::Error; use crate::{Error, Result};
use crate::Result;
use tracing::error;
use ewebsock::{WsEvent, WsMessage}; use ewebsock::{WsEvent, WsMessage};
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]

View File

@ -12,23 +12,18 @@ use crate::ui::padding;
use crate::widgets::note::NoteContents; use crate::widgets::note::NoteContents;
use crate::Result; use crate::Result;
use egui::containers::scroll_area::ScrollBarVisibility; use egui::containers::scroll_area::ScrollBarVisibility;
use std::borrow::Cow;
use egui::widgets::Spinner; use egui::widgets::Spinner;
use egui::{ use egui::{Color32, Context, Frame, Label, Margin, RichText, Sense, Style, TextureHandle, Vec2};
CollapsingHeader, Color32, Context, Frame, Hyperlink, Image, Label, Margin, RichText, Sense,
Style, TextureHandle, Vec2, Visuals,
};
use enostr::{ClientMessage, Filter, Pubkey, RelayEvent, RelayMessage}; use enostr::{ClientMessage, Filter, Pubkey, RelayEvent, RelayMessage};
use nostrdb::{ use nostrdb::{
Block, BlockType, Blocks, Config, Mention, Ndb, Note, NoteKey, ProfileRecord, Subscription, BlockType, Config, Mention, Ndb, Note, NoteKey, ProfileRecord, Subscription, Transaction,
Transaction,
}; };
use poll_promise::Promise;
use std::cmp::Ordering; use std::cmp::Ordering;
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::hash::{Hash, Hasher}; use std::hash::Hash;
use std::path::Path; use std::path::Path;
use std::time::Duration; use std::time::Duration;
use tracing::{debug, error, info, warn}; use tracing::{debug, error, info, warn};
@ -86,8 +81,7 @@ impl Timeline {
/// We derive Deserialize/Serialize so we can persist app state on shutdown. /// We derive Deserialize/Serialize so we can persist app state on shutdown.
pub struct Damus { pub struct Damus {
state: DamusState, state: DamusState,
compose: String, //compose: String,
note_cache: HashMap<NoteKey, NoteCache>, note_cache: HashMap<NoteKey, NoteCache>,
pool: RelayPool, pool: RelayPool,
@ -127,16 +121,6 @@ fn relay_setup(pool: &mut RelayPool, ctx: &egui::Context) {
} }
} }
fn get_home_filter(limit: u16) -> Filter {
Filter::new().limit(limit).kinds(vec![1, 42]).pubkeys(
[
Pubkey::from_hex("32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245")
.unwrap(),
]
.into(),
)
}
fn send_initial_filters(damus: &mut Damus, relay_url: &str) { fn send_initial_filters(damus: &mut Damus, relay_url: &str) {
info!("Sending initial filters to {}", relay_url); info!("Sending initial filters to {}", relay_url);
let mut c: u32 = 1; let mut c: u32 = 1;
@ -226,7 +210,7 @@ fn get_unknown_note_pubkeys<'a>(
let blocks = ndb.get_blocks_by_key(txn, note_key)?; let blocks = ndb.get_blocks_by_key(txn, note_key)?;
for block in blocks.iter(note) { for block in blocks.iter(note) {
let blocktype = block.blocktype(); let _blocktype = block.blocktype();
match block.blocktype() { match block.blocktype() {
BlockType::MentionBech32 => match block.as_mention().unwrap() { BlockType::MentionBech32 => match block.as_mention().unwrap() {
Mention::Pubkey(npub) => { Mention::Pubkey(npub) => {
@ -445,7 +429,7 @@ impl Damus {
setup_cc(cc); setup_cc(cc);
let mut timelines: Vec<Timeline> = vec![]; let mut timelines: Vec<Timeline> = vec![];
let initial_limit = 100; let _initial_limit = 100;
if args.len() > 1 { if args.len() > 1 {
for arg in &args[1..] { for arg in &args[1..] {
let filter = serde_json::from_str(&arg).unwrap(); let filter = serde_json::from_str(&arg).unwrap();
@ -454,11 +438,10 @@ impl Damus {
} else { } else {
let filter = serde_json::from_str(&include_str!("../queries/global.json")).unwrap(); let filter = serde_json::from_str(&include_str!("../queries/global.json")).unwrap();
timelines.push(Timeline::new(filter)); timelines.push(Timeline::new(filter));
//vec![get_home_filter(initial_limit)]
}; };
let imgcache_dir = data_path.as_ref().join("cache/img"); let imgcache_dir = data_path.as_ref().join("cache/img");
std::fs::create_dir_all(imgcache_dir.clone()); let _ = std::fs::create_dir_all(imgcache_dir.clone());
let mut config = Config::new(); let mut config = Config::new();
config.set_ingester_threads(2); config.set_ingester_threads(2);
@ -469,7 +452,7 @@ impl Damus {
note_cache: HashMap::new(), note_cache: HashMap::new(),
timelines, timelines,
ndb: Ndb::new(data_path.as_ref().to_str().expect("db path ok"), &config).expect("ndb"), ndb: Ndb::new(data_path.as_ref().to_str().expect("db path ok"), &config).expect("ndb"),
compose: "".to_string(), //compose: "".to_string(),
frame_history: FrameHistory::default(), frame_history: FrameHistory::default(),
} }
} }
@ -585,6 +568,7 @@ fn no_pfp_url() -> &'static str {
"https://damus.io/img/no-profile.svg" "https://damus.io/img/no-profile.svg"
} }
/*
fn render_notes_in_viewport( fn render_notes_in_viewport(
ui: &mut egui::Ui, ui: &mut egui::Ui,
_damus: &mut Damus, _damus: &mut Damus,
@ -624,6 +608,7 @@ fn render_notes_in_viewport(
ui.allocate_rect(used_rect, egui::Sense::hover()); // make sure it is visible! ui.allocate_rect(used_rect, egui::Sense::hover()); // make sure it is visible!
} }
*/
fn render_reltime(ui: &mut egui::Ui, note_cache: &mut NoteCache) { fn render_reltime(ui: &mut egui::Ui, note_cache: &mut NoteCache) {
#[cfg(feature = "profiling")] #[cfg(feature = "profiling")]
@ -638,12 +623,14 @@ fn render_reltime(ui: &mut egui::Ui, note_cache: &mut NoteCache) {
)); ));
} }
/*
fn circle_icon(ui: &mut egui::Ui, openness: f32, response: &egui::Response) { fn circle_icon(ui: &mut egui::Ui, openness: f32, response: &egui::Response) {
let stroke = ui.style().interact(&response).fg_stroke; let stroke = ui.style().interact(&response).fg_stroke;
let radius = egui::lerp(2.0..=3.0, openness); let radius = egui::lerp(2.0..=3.0, openness);
ui.painter() ui.painter()
.circle_filled(response.rect.center(), radius, stroke.color); .circle_filled(response.rect.center(), radius, stroke.color);
} }
*/
#[derive(Hash, Clone, Copy)] #[derive(Hash, Clone, Copy)]
struct NoteTimelineKey { struct NoteTimelineKey {
@ -924,12 +911,12 @@ fn render_damus_desktop(ctx: &egui::Context, app: &mut Damus) {
}); });
} }
/*
fn postbox(ui: &mut egui::Ui, app: &mut Damus) { fn postbox(ui: &mut egui::Ui, app: &mut Damus) {
let _output = egui::TextEdit::multiline(&mut app.compose) let _output = egui::TextEdit::multiline(&mut app.compose)
.hint_text("Type something!") .hint_text("Type something!")
.show(ui); .show(ui);
/*
let width = ui.available_width(); let width = ui.available_width();
let height = 100.0; let height = 100.0;
let shapes = [Shape::Rect(RectShape { let shapes = [Shape::Rect(RectShape {
@ -940,8 +927,8 @@ fn postbox(ui: &mut egui::Ui, app: &mut Damus) {
})]; })];
ui.painter().extend(shapes); ui.painter().extend(shapes);
*/
} }
*/
fn timeline_panel<R>( fn timeline_panel<R>(
ui: &mut egui::Ui, ui: &mut egui::Ui,

View File

@ -1,7 +1,7 @@
use egui::Color32; use egui::Color32;
pub const PURPLE: Color32 = Color32::from_rgb(0xCC, 0x43, 0xC5); pub const PURPLE: Color32 = Color32::from_rgb(0xCC, 0x43, 0xC5);
pub const DARK_BG: Color32 = egui::Color32::from_rgb(40, 44, 52); //pub const DARK_BG: Color32 = egui::Color32::from_rgb(40, 44, 52);
pub const GRAY_SECONDARY: Color32 = Color32::from_rgb(0x8A, 0x8A, 0x8A); pub const GRAY_SECONDARY: Color32 = Color32::from_rgb(0x8A, 0x8A, 0x8A);
pub const WHITE: Color32 = Color32::from_rgb(0xFF, 0xFF, 0xFF); pub const WHITE: Color32 = Color32::from_rgb(0xFF, 0xFF, 0xFF);
pub const ALMOST_WHITE: Color32 = Color32::from_rgb(0xFA, 0xFA, 0xFA); pub const ALMOST_WHITE: Color32 = Color32::from_rgb(0xFA, 0xFA, 0xFA);

View File

@ -100,7 +100,7 @@ pub fn setup_fonts(ctx: &egui::Context) {
), ),
); );
let mut proportional = vec![ let proportional = vec![
"Onest".to_owned(), "Onest".to_owned(),
"DejaVuSans".to_owned(), "DejaVuSans".to_owned(),
"NotoEmoji".to_owned(), "NotoEmoji".to_owned(),

View File

@ -6,7 +6,7 @@ use image::imageops::FilterType;
use poll_promise::Promise; use poll_promise::Promise;
use tokio::fs; use tokio::fs;
use std::path; use std::path;
use std::collections::HashMap;
//pub type ImageCacheKey = String; //pub type ImageCacheKey = String;
//pub type ImageCacheValue = Promise<Result<TextureHandle>>; //pub type ImageCacheValue = Promise<Result<TextureHandle>>;

View File

@ -1,17 +1,13 @@
use crate::{Error, Result}; use crate::Result;
use egui::TextureHandle; use egui::TextureHandle;
use poll_promise::Promise; use poll_promise::Promise;
use egui::ColorImage; use egui::ColorImage;
use hex;
use std::borrow::Cow;
use std::collections::hash_map::Entry;
use std::collections::HashMap; use std::collections::HashMap;
use std::fs::File; use std::fs::File;
use std::hash::{Hash, Hasher};
use std::io;
use std::path; use std::path;
use tokio::fs;
pub type ImageCacheValue = Promise<Result<TextureHandle>>; pub type ImageCacheValue = Promise<Result<TextureHandle>>;
pub type ImageCacheMap = HashMap<String, ImageCacheValue>; pub type ImageCacheMap = HashMap<String, ImageCacheValue>;
@ -33,12 +29,13 @@ impl ImageCache {
let file_path = cache_dir.join(&Self::key(url)); let file_path = cache_dir.join(&Self::key(url));
let file = File::options().write(true).create(true).open(file_path)?; let file = File::options().write(true).create(true).open(file_path)?;
let encoder = image::codecs::webp::WebPEncoder::new_lossless(file); let encoder = image::codecs::webp::WebPEncoder::new_lossless(file);
encoder.encode( encoder.encode(
data.as_raw(), data.as_raw(),
data.size[0] as u32, data.size[0] as u32,
data.size[1] as u32, data.size[1] as u32,
image::ColorType::Rgba8, image::ColorType::Rgba8,
); )?;
Ok(()) Ok(())
} }

View File

@ -7,7 +7,7 @@ pub struct AccountLoginTest {
} }
impl EguiTestCase for AccountLoginTest { impl EguiTestCase for AccountLoginTest {
fn new(supr: EguiTestSetup) -> Self { fn new(_supr: EguiTestSetup) -> Self {
AccountLoginTest { AccountLoginTest {
manager: LoginManager::new(), manager: LoginManager::new(),
} }

View File

@ -42,7 +42,7 @@ fn render_note_contents(
#[cfg(feature = "profiling")] #[cfg(feature = "profiling")]
puffin::profile_function!(); puffin::profile_function!();
let mut images: Vec<String> = vec![]; let images: Vec<String> = vec![];
let resp = ui.horizontal_wrapped(|ui| { let resp = ui.horizontal_wrapped(|ui| {
let blocks = if let Ok(blocks) = damus.ndb.get_blocks_by_key(txn, note_key) { let blocks = if let Ok(blocks) = damus.ndb.get_blocks_by_key(txn, note_key) {