You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
boB Rudis d1f9471e37
NEWS
5 years ago
.vscode Added better jpeg + new lzip, 7-zip, wasm, pcap, avro, parquet detections 6 years ago
R Added better jpeg + new lzip, 7-zip, wasm, pcap, avro, parquet detections 6 years ago
inst cran 5 years ago
man Added better jpeg + new lzip, 7-zip, wasm, pcap, avro, parquet detections 6 years ago
tests cran 5 years ago
.Rbuildignore NEWS 5 years ago
.gitignore initial commit 8 years ago
.travis.yml cran 5 years ago
CRAN-RELEASE NEWS 5 years ago
DESCRIPTION cran 5 years ago
LICENSE cran 5 years ago
NAMESPACE pre-cran flight check 6 years ago
NEWS.md NEWS 5 years ago
README.Rmd README 5 years ago
README.md README 5 years ago
cran-comments.md NEWS 5 years ago
wand.Rproj pkg rename 8 years ago

README.md

Project Status: Active - The project has reached a stable, usablestate and is being activelydeveloped. Travis-CIBuildStatus AppVeyor BuildStatus CoverageStatus

wand

Lightweight File ‘MIME’ Type Detection Based On Contents or Extension

Description

‘MIME’ types are shorthand descriptors for file contents and can be determined from “magic” bytes in file headers, file contents or intuited from file extensions. Tools are provided to perform curated “magic” tests as well as mapping ‘MIME’ types from a database of over 1,500 extension mappings.

SOME IMPORTANT DETAILS

The header checking is minimal (i.e. nowhere near as comprehensive as libmagic) but covers quite a bit of ground. If there are content-check types from magic sources that you would like coded into the package, please file an issue and include the full line(s) from that linked magic.tab that you would like mapped.

What’s Inside The Tin

  • get_content_type: Discover MIME type of a file based on contents
  • guess_content_type: Guess MIME type from filename (extension)
  • simplemagic_mime_db: File extension-to-MIME mapping data frame

The following functions are implemented:

Installation

install.packages("wand", repos = "https://cinc.rud.is")
# or
devtools::install_git("https://git.rud.is/hrbrmstr/wand.git")
# or
devtools::install_git("https://git.sr.ht/~hrbrmstr/wand")
# or
devtools::install_gitlab("hrbrmstr/wand")
# or
devtools::install_bitbucket("hrbrmstr/wand")
# or
devtools::install_github("hrbrmstr/wand")

Usage

library(wand)
library(tidyverse)

# current verison
packageVersion("wand")
## [1] '0.5.0'
list.files(system.file("extdat", package="wand"), full.names=TRUE) %>% 
  map_df(~{
    tibble(
      fil = basename(.x),
      mime = list(get_content_type(.x))
    )
  }) %>% 
  unnest()
fil mime
actions.csv application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
actions.txt application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
actions.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
test_128_44_jstereo.mp3 audio/mp3
test_excel_2000.xls application/msword
test_excel_spreadsheet.xml application/xml
test_excel_web_archive.mht message/rfc822
test_excel.xlsm application/zip
test_excel.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
test_nocompress.tif image/tiff
test_powerpoint.pptm application/zip
test_powerpoint.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
test_word_2000.doc application/msword
test_word_6.0_95.doc application/msword
test_word.docm application/zip
test_word.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
test.au audio/basic
test.bin application/mac-binary
test.bin application/macbinary
test.bin application/octet-stream
test.bin application/x-binary
test.bin application/x-macbinary
test.bmp image/bmp
test.dtd application/xml-dtd
test.emf application/x-msmetafile
test.eps application/postscript
test.fli video/flc
test.fli video/fli
test.fli video/x-fli
test.gif image/gif
test.ico image/x-icon
test.jpg image/jpeg
test.mp3 audio/mp3
test.odt application/vnd.oasis.opendocument.text
test.ogg application/ogg
test.ogg audio/ogg
test.pcx image/pcx
test.pcx image/x-pcx
test.pdf application/pdf
test.pl text/plain
test.pl text/x-perl
test.pl text/x-script.perl
test.png image/png
test.pnm application/x-portable-anymap
test.pnm image/x-portable-anymap
test.ppm image/x-portable-pixmap
test.ppt application/msword
test.ps application/postscript
test.psd image/photoshop
test.py text/x-python
test.py text/x-script.phyton
test.rtf application/rtf
test.rtf application/x-rtf
test.rtf text/richtext
test.rtf text/rtf
test.sh application/x-bsh
test.sh application/x-sh
test.sh application/x-shar
test.sh text/x-script.sh
test.sh text/x-sh
test.tar application/tar
test.tar.gz application/octet-stream
test.tar.gz application/x-compressed
test.tar.gz application/x-gzip
test.tga image/x-tga
test.txt text/plain
test.txt.gz application/octet-stream
test.txt.gz application/x-compressed
test.txt.gz application/x-gzip
test.wav audio/x-wav
test.wmf application/x-msmetafile
test.wmf windows/metafile
test.xcf application/x-xcf
test.xml application/xml
test.xpm image/x-xbitmap
test.xpm image/x-xpixmap
test.xpm image/xpm
test.zip application/zip

Package Code Metrics

cloc::cloc_pkg_md()
Lang # Files (%) LoC (%) Blank lines (%) # Lines (%)
R 7 0.78 949 0.91 52 0.7 62 0.62
JSON 1 0.11 80 0.08 0 0.0 0 0.00
Rmd 1 0.11 15 0.01 22 0.3 38 0.38

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.