Example #1
0
        /// <summary>
        /// Uploads a document into Scribd
        /// </summary>
        /// <param name="path">Local or Url path to the file</param>
        /// <param name="accessType">Access permission of document</param>
        /// <param name="revisionNumber">The document id to save uploaded file as a revision to</param>
        /// <param name="documentType">Type of document</param>
        /// <param name="paidContent">Is this paid content or not</param>
        /// <param name="downloadType">Download options to support</param>
        /// <param name="asynch">Synch of Asych upload?</param>
        /// <returns><see cref="T:Scribd.Net.Document"/> instance of the uploaded document.</returns>
        private static Document _Upload(string path, AccessTypes accessType, int revisionNumber, string documentType,
            bool paidContent, DownloadAndDRMTypes downloadType, bool asynch)
        {
            Document _result = new Document();

            // Build our request
            using (Request _request = new Request())
            {
                // Is this from a URL?
                if (path.StartsWith(@"http://")  || path.StartsWith(@"https://"))
                {
                    // Upload to Scribd via URL
                    _request.MethodName = "docs.uploadFromUrl";
                    _request.Parameters.Add("url", path);
                }
                else
                {
                    // Don't.
                    _request.MethodName = "docs.upload";
                    _request.Parameters.Add("file", path);

                }

                if (!string.IsNullOrEmpty(documentType))
                {
                    _request.Parameters.Add("doc_type", documentType.ToLower());
                }

                _request.Parameters.Add("access", accessType == AccessTypes.Public ? "public" : "private");

                if (revisionNumber != 0)
                {
                    _request.Parameters.Add("rev_id", revisionNumber.ToString());
                }

                if (paidContent)
                {
                    _request.Parameters.Add("paid_content", "1");
                    if (downloadType != DownloadAndDRMTypes.Default)
                    {
                        switch (downloadType)
                        {
                            case DownloadAndDRMTypes.DownloadDRM:               _request.Parameters.Add("download_and_drm", "download-drm"); break;
                            case DownloadAndDRMTypes.DownloadPDF:               _request.Parameters.Add("download_and_drm", "download-pdf"); break;
                            case DownloadAndDRMTypes.DownloadPDFandOriginal:    _request.Parameters.Add("download_and_drm", "download-pdf-orig"); break;
                            case DownloadAndDRMTypes.ViewOnly:                  _request.Parameters.Add("download_and_drm", "view-only"); break;
                        }
                    }
                }

                if (asynch)
                {
                    // Post it asychronously
                    Service.Instance.PostFileUploadRequest(_request);
                }
                else
                {
                    // Post is sychronously

                    // Get our response
                    Response _response = Service.Instance.PostRequest(_request);

                    // Parse the response
                    if (_response != null && _response.HasChildNodes && _response.ErrorList.Count < 1)
                    {
                        XmlNode _node = _response.SelectSingleNode("rsp");

                        // Data
                        _result.DocumentId = int.Parse(_node.SelectSingleNode("doc_id").InnerText);
                        _result.AccessKey = _node.SelectSingleNode("access_key").InnerText;

                        // Security
                        if (_node.SelectSingleNode("secret_password") != null)
                        {
                            _result.AccessType = AccessTypes.Private;
                            _result.SecretPassword = _node.SelectSingleNode("secret_password").InnerText;
                        }
                    }

                    // Notify subscribers
                    OnUploaded(_result);
                }
            }
            return _result;
        }
Example #2
0
 /// <summary>
 /// Uploads a document into Scribd
 /// </summary>
 /// <param name="path">Local or Url path to the file</param>
 /// <param name="accessType">Access permission of document</param>
 /// <param name="revisionNumber">The document id to save uploaded file as a revision to</param>
 /// <param name="documentType">Type of document</param>
 /// <param name="downloadType">Download options to support</param>
 /// <param name="asynch">Synch of Asych upload?</param>
 /// <returns><see cref="T:Scribd.Net.Document"/> instance of the uploaded document.</returns>
 public static Document UploadPaidContent(string path, AccessTypes accessType, int revisionNumber,
     string documentType, DownloadAndDRMTypes downloadType, bool asynch)
 {
     return _Upload(path, accessType, revisionNumber, documentType, true, downloadType, asynch);
 }