/** * gd_filename_to_rdf_type: * @filename_with_extension: * * Returns: (transfer none): */ const char * gd_filename_to_rdf_type (const gchar *filename_with_extension) { const gchar *extension; const gchar *type = NULL; g_return_val_if_fail (filename_with_extension != NULL, NULL); extension = gd_filename_get_extension_offset (filename_with_extension); if (g_strcmp0 (extension, ".html") == 0) type = "nfo:HtmlDocument"; else if (g_strcmp0 (extension, ".doc") == 0 || g_strcmp0 (extension, ".docm") == 0 || g_strcmp0 (extension, ".docx") == 0 || g_strcmp0 (extension, ".dot") == 0 || g_strcmp0 (extension, ".dotx") == 0 || g_strcmp0 (extension, ".pdf") == 0) type = "nfo:PaginatedTextDocument"; else if (g_strcmp0 (extension, ".epub") == 0 || g_strcmp0 (extension, ".djv") == 0 || g_strcmp0 (extension, ".djvu") == 0 || g_strcmp0 (extension, ".cbr") == 0 || g_strcmp0 (extension, ".cbz") == 0 || g_strcmp0 (extension, ".cbt") == 0 || g_strcmp0 (extension, ".cb7") == 0 || g_strcmp0 (extension, ".fb2") == 0 || g_strcmp0 (extension, ".fb2.zip") == 0 || g_strcmp0 (extension, ".mobi") == 0 || g_strcmp0 (extension, ".prc") == 0) type = "nfo:EBook"; else if (g_strcmp0 (extension, ".pot") == 0 || g_strcmp0 (extension, ".potm") == 0 || g_strcmp0 (extension, ".potx") == 0 || g_strcmp0 (extension, ".pps") == 0 || g_strcmp0 (extension, ".ppsm") == 0 || g_strcmp0 (extension, ".ppsx") == 0 || g_strcmp0 (extension, ".ppt") == 0 || g_strcmp0 (extension, ".pptm") == 0 || g_strcmp0 (extension, ".pptx") == 0) type = "nfo:Presentation"; else if (g_strcmp0 (extension, ".txt") == 0) type = "nfo:PlainTextDocument"; else if (g_strcmp0 (extension, ".xls") == 0 || g_strcmp0 (extension, ".xlsb") == 0 || g_strcmp0 (extension, ".xlsm") == 0 || g_strcmp0 (extension, ".xlsx") == 0) type = "nfo:Spreadsheet"; return type; }
/** * gd_filename_to_mime_type: * @filename_with_extension: * * Returns: (transfer none): */ const char * gd_filename_to_mime_type (const gchar *filename_with_extension) { const gchar *extension; const gchar *type = NULL; g_return_val_if_fail (filename_with_extension != NULL, NULL); extension = gd_filename_get_extension_offset (filename_with_extension); if (g_strcmp0 (extension, ".pdf") == 0) type = "application/pdf"; return type; }
/** * gd_filename_strip_extension: * @filename_with_extension: * * Returns: (transfer full): */ char * gd_filename_strip_extension (const char * filename_with_extension) { char *filename, *end; if (filename_with_extension == NULL) { return NULL; } filename = g_strdup (filename_with_extension); end = gd_filename_get_extension_offset (filename); if (end && end != filename) { *end = '\0'; } return filename; }
static void zpj_download_stream_ready (GObject *source, GAsyncResult *res, gpointer user_data) { GError *error = NULL; PdfLoadJob *job = (PdfLoadJob *) user_data; const gchar *name; const gchar *extension; job->stream = zpj_skydrive_download_file_to_stream_finish (ZPJ_SKYDRIVE (source), res, &error); if (error != NULL) { pdf_load_job_complete_error (job, error); return; } name = zpj_skydrive_entry_get_name (job->zpj_entry); extension = gd_filename_get_extension_offset (name); /* If it is not a PDF, we need to convert it afterwards. * http://msdn.microsoft.com/en-us/library/live/hh826545#fileformats */ if (g_strcmp0 (extension, ".pdf") != 0) { GFileIOStream *iostream; job->download_file = g_file_new_tmp (NULL, &iostream, &error); if (error != NULL) { pdf_load_job_complete_error (job, error); return; } /* We don't need the iostream. */ g_io_stream_close (G_IO_STREAM (iostream), NULL, NULL); } else job->download_file = g_file_new_for_path (job->pdf_path); g_file_replace_async (job->download_file, NULL, FALSE, G_FILE_CREATE_PRIVATE, G_PRIORITY_DEFAULT, job->cancellable, file_replace_ready_cb, job); }
/** * gd_filename_to_mime_type: * @filename_with_extension: * * Returns: (transfer none): */ const char * gd_filename_to_mime_type (const gchar *filename_with_extension) { const gchar *extension; const gchar *type = NULL; g_return_val_if_fail (filename_with_extension != NULL, NULL); extension = gd_filename_get_extension_offset (filename_with_extension); if (g_strcmp0 (extension, ".pdf") == 0) type = "application/pdf"; else if (g_strcmp0 (extension, ".djv") == 0) type = "image/vnd.djvu+multipage"; else if (g_strcmp0 (extension, ".djvu") == 0) type = "image/vnd.djvu+multipage"; else if (g_strcmp0 (extension, ".epub") == 0) type = "application/epub+zip"; else if (g_strcmp0 (extension, ".cbr") == 0) type = "application/x-cbr"; else if (g_strcmp0 (extension, ".cbz") == 0) type = "application/x-cbz"; else if (g_strcmp0 (extension, ".cbt") == 0) type = "application/x-cbt"; else if (g_strcmp0 (extension, ".cb7") == 0) type = "application/x-cb7"; else if (g_strcmp0 (extension, ".fb2.zip") == 0) type = "application/x-zip-compressed-fb2"; else if (g_strcmp0 (extension, ".fb2") == 0) type = "application/x-fictionbook+xml"; else if (g_strcmp0 (extension, ".mobi") == 0) type = "application/x-mobipocket-ebook"; else if (g_strcmp0 (extension, ".prc") == 0) type = "application/x-mobipocket-ebook"; return type; }