Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing mime types for some extensions #73

Open
qarmin opened this issue May 8, 2022 · 1 comment
Open

Missing mime types for some extensions #73

qarmin opened this issue May 8, 2022 · 1 comment

Comments

@qarmin
Copy link

qarmin commented May 8, 2022

Below is list of 90 most popular extensions on my OS, that doesn't have any mime type assigned
some like qml are easy to assign, unlike generic extension file

a - file created by compilers
o - file created by compiles
pyc - compiled python
gd - Godot Engine script file
qml - QT language
ui - interface file(Glade/Cambalache etc.)

28636 - ko
27767 - d
25827 - mo
16772 - final
15620 - file
11143 - o
9470 - pyc
6494 - idx
3848 - cache
3448 - 0
3267 - timestamp
3236 - import
2668 - gd
2661 - qm
2577 - qml
2499 - cache-7
2393 - md5sums
2287 - rmeta
2109 - docbook
1870 - md5
1858 - rlib
1844 - a
1823 - len
1660 - tscn
1590 - g2d
1587 - desktop
1524 - stex
1475 - desc
1398 - fastresume
1369 - vim
1318 - sqlite
1311 - sample
1291 - page
1243 - ui
1232 - 1
1138 - pyi
1108 - triggers
1102 - rb
1064 - shlibs
954 - qmlc
947 - dirtree
897 - nls
859 - lng
778 - po
772 - jsonlz4
673 - spec
652 - symbols
634 - info
624 - tres
617 - service
578 - 2
575 - 3
533 - postinst
483 - cdb
483 - bik
477 - hdb
465 - tmpl
464 - postrm
447 - g16
445 - properties
380 - prerm
379 - done
370 - hyb
362 - code
358 - 5
354 - cocci
310 - cache-6
293 - 6
284 - rst
265 - _
258 - old
258 - tablet
255 - whs
254 - mpi
251 - preinst
249 - 26
248 - at
247 - g17
244 - mtl
236 - fw
236 - mmg
234 - conffiles
228 - storage
228 - Debian
218 - 4
211 - ejs
209 - out
209 - pod
205 - pack
200 - fon
@qarmin
Copy link
Author

qarmin commented May 8, 2022

Code used to find such extensions

pub fn mime_check() {
    let allowed_extensions = vec![];
    let checked_dir = vec!["/home/", "/mnt"];

    let collected_files = collect_files(checked_dir, allowed_extensions);

    let collected_extensions: Vec<_> = collected_files
        .into_iter()
        .filter_map(|path| {
            let path = Path::new(&path);
            if let Some(extension) = path.extension() {
                let extension = extension.to_string_lossy().to_string();
                let mime_g = mime_guess::from_ext(extension.as_str());
                let mime_number = mime_g.iter().count();
                if extension == "a" {
                    println!("{:?}", path);
                }
                if mime_number == 0 {
                    return Some(extension);
                }
            }
            None
        })
        .collect();
    let mut btree: HashMap<String, u32> = Default::default();
    for i in collected_extensions {
        btree.entry(i.clone()).or_insert(0);
        *btree.get_mut(&i).unwrap() += 1;
    }

    let mut new_vec = Vec::new();
    for i in btree {
        new_vec.push(i);
    }
    new_vec.sort_by(|(_ext, number), (_ext2, number2)| {
        return if number < number2 {
            Ordering::Greater
        } else {
            Ordering::Less
        };
    });

    for (ext, number) in new_vec {
        println!("{} - {}", number, ext);
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant