diff --git a/bot.rkt b/bot.rkt
index 9b94940..925e060 100644
--- a/bot.rkt
+++ b/bot.rkt
@@ -12,7 +12,17 @@
 (define pos (random 19))
 (define CRLF "\r\n")
 (define boundary (bytes->string/utf-8 (md5 (number->string (current-seconds)))))
-(define boundary-line (string-append "--" boundary CRLF))  
+(define boundary-line (string-append "--" boundary CRLF))
+; a table to map file extensions to MIME types:
+(define ext=>mime-type
+  #hash((#"jpg" . #"image/jpeg")
+        (#"png"  . #"image/png")
+        (#"gif"  . #"image/Gif")
+        (#"swf"  . #"application/x-shockwave-flash")
+        (#"mp4"  . #"video/mp4")
+        (#"webm" . #"video/webm")))                                        
+                
+                                        
 
 
 (define (search-safebooru)
@@ -26,6 +36,7 @@
   (define url (hash-ref post 'file_url))
   (define md5 (hash-ref post 'md5))
   (define file-ext (hash-ref post 'file_ext))
+  (define mime-type (hash-ref ext=>mime-type file-ext))
   (define filename (string-append md5 "." file-ext))
   (displayln (format "Downloading ~a from ~a" filename url))
   (call-with-output-file filename
@@ -34,9 +45,8 @@
   
  (define data
   (bytes-append
-   (string->bytes/utf-8 (string-append boundary-line "Content-Disposition: form-data; name=\"file\"; filename=" "\"" filename "\"" CRLF      
-                                        (format "Content-Type: image/~a" (if (eq? file-ext "jpg") "jpeg" "png"))
-                                        CRLF CRLF))
+   (string->bytes/utf-8 (string-append boundary-line "Content-Disposition: form-data; name=\"file\"; filename=" "\"" filename "\"" CRLF
+                                       "Content-Type: " mime-type CRLF CRLF))
                     (file->bytes filename) 
    (string->bytes/utf-8 (string-append CRLF "--" boundary "--" CRLF))))
  
@@ -61,9 +71,10 @@
     (displayln status)
   (displayln (read-json response)))
 
+;sleep for ten minutes
 (define (loop)
 (sleep 600)
 (upload-attachment)
   (loop))
 
-
+(loop)