Search the Community
Showing results for tags 'upload'.
-
Here is a UDF geared at making libcurl more accessible to AutoIt users. Homepage of curl and libcurl: http://curl.haxx.se Technical overview: libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and more! (from http://curl.haxx.se/libcurl/) Features: This UDF wraps the "easy" interface of libcurl. Below is a complete list of the functions currently available in this library: ; #CURRENT# ===================================================================================================================== ;_curl_easy_escape ;_curl_easy_init ;_curl_easy_cleanup ;_curl_easy_duphandle ;_curl_easy_getinfo ;_curl_easy_pause ;_curl_easy_perform ;_curl_easy_recv ;_curl_easy_reset ;_curl_easy_send ;_curl_easy_setopt ;_curl_easy_strerror ;_curl_easy_unescape ;_curl_formadd ;_curl_formfree ;_curl_free ;_curl_getdate ;_curl_global_cleanup ;_curl_global_init ;_curl_global_init_mem ;_curl_slist_append ;_curl_slist_free_all ;_curl_version ;_curl_version_info ; =============================================================================================================================== Code: libcURLConstants.au3 #include-once ; libcURLConstants.au3, generated from curl.h of libcurl 7.25.0 on 04/06/2012 05:11:23 GMT for use with "libcURL.au3", the libcurl wrapper UDF by smartee. ; possible error codes from all sorts of curl functions Global Const $CURLE_OK = 0 Global Const $CURLE_UNSUPPORTED_PROTOCOL = 1 Global Const $CURLE_FAILED_INIT = 2 Global Const $CURLE_URL_MALFORMAT = 3 Global Const $CURLE_NOT_BUILT_IN = 4 Global Const $CURLE_COULDNT_RESOLVE_PROXY = 5 Global Const $CURLE_COULDNT_RESOLVE_HOST = 6 Global Const $CURLE_COULDNT_CONNECT = 7 Global Const $CURLE_FTP_WEIRD_SERVER_REPLY = 8 Global Const $CURLE_REMOTE_ACCESS_DENIED = 9 Global Const $CURLE_FTP_ACCEPT_FAILED = 10 Global Const $CURLE_FTP_WEIRD_PASS_REPLY = 11 Global Const $CURLE_FTP_ACCEPT_TIMEOUT = 12 Global Const $CURLE_FTP_WEIRD_PASV_REPLY = 13 Global Const $CURLE_FTP_WEIRD_227_FORMAT = 14 Global Const $CURLE_FTP_CANT_GET_HOST = 15 Global Const $CURLE_OBSOLETE16 = 16 Global Const $CURLE_FTP_COULDNT_SET_TYPE = 17 Global Const $CURLE_PARTIAL_FILE = 18 Global Const $CURLE_FTP_COULDNT_RETR_FILE = 19 Global Const $CURLE_OBSOLETE20 = 20 Global Const $CURLE_QUOTE_ERROR = 21 Global Const $CURLE_HTTP_RETURNED_ERROR = 22 Global Const $CURLE_WRITE_ERROR = 23 Global Const $CURLE_OBSOLETE24 = 24 Global Const $CURLE_UPLOAD_FAILED = 25 Global Const $CURLE_READ_ERROR = 26 Global Const $CURLE_OUT_OF_MEMORY = 27 Global Const $CURLE_OPERATION_TIMEDOUT = 28 Global Const $CURLE_OBSOLETE29 = 29 Global Const $CURLE_FTP_PORT_FAILED = 30 Global Const $CURLE_FTP_COULDNT_USE_REST = 31 Global Const $CURLE_OBSOLETE32 = 32 Global Const $CURLE_RANGE_ERROR = 33 Global Const $CURLE_HTTP_POST_ERROR = 34 Global Const $CURLE_SSL_CONNECT_ERROR = 35 Global Const $CURLE_BAD_DOWNLOAD_RESUME = 36 Global Const $CURLE_FILE_COULDNT_READ_FILE = 37 Global Const $CURLE_LDAP_CANNOT_BIND = 38 Global Const $CURLE_LDAP_SEARCH_FAILED = 39 Global Const $CURLE_OBSOLETE40 = 40 Global Const $CURLE_FUNCTION_NOT_FOUND = 41 Global Const $CURLE_ABORTED_BY_CALLBACK = 42 Global Const $CURLE_BAD_FUNCTION_ARGUMENT = 43 Global Const $CURLE_OBSOLETE44 = 44 Global Const $CURLE_INTERFACE_FAILED = 45 Global Const $CURLE_OBSOLETE46 = 46 Global Const $CURLE_TOO_MANY_REDIRECTS = 47 Global Const $CURLE_UNKNOWN_OPTION = 48 Global Const $CURLE_TELNET_OPTION_SYNTAX = 49 Global Const $CURLE_OBSOLETE50 = 50 Global Const $CURLE_PEER_FAILED_VERIFICATION = 51 Global Const $CURLE_GOT_NOTHING = 52 Global Const $CURLE_SSL_ENGINE_NOTFOUND = 53 Global Const $CURLE_SSL_ENGINE_SETFAILED = 54 Global Const $CURLE_SEND_ERROR = 55 Global Const $CURLE_RECV_ERROR = 56 Global Const $CURLE_OBSOLETE57 = 57 Global Const $CURLE_SSL_CERTPROBLEM = 58 Global Const $CURLE_SSL_CIPHER = 59 Global Const $CURLE_SSL_CACERT = 60 Global Const $CURLE_BAD_CONTENT_ENCODING = 61 Global Const $CURLE_LDAP_INVALID_URL = 62 Global Const $CURLE_FILESIZE_EXCEEDED = 63 Global Const $CURLE_USE_SSL_FAILED = 64 Global Const $CURLE_SEND_FAIL_REWIND = 65 Global Const $CURLE_SSL_ENGINE_INITFAILED = 66 Global Const $CURLE_LOGIN_DENIED = 67 Global Const $CURLE_TFTP_NOTFOUND = 68 Global Const $CURLE_TFTP_PERM = 69 Global Const $CURLE_REMOTE_DISK_FULL = 70 Global Const $CURLE_TFTP_ILLEGAL = 71 Global Const $CURLE_TFTP_UNKNOWNID = 72 Global Const $CURLE_REMOTE_FILE_EXISTS = 73 Global Const $CURLE_TFTP_NOSUCHUSER = 74 Global Const $CURLE_CONV_FAILED = 75 Global Const $CURLE_CONV_REQD = 76 Global Const $CURLE_SSL_CACERT_BADFILE = 77 Global Const $CURLE_REMOTE_FILE_NOT_FOUND = 78 Global Const $CURLE_SSH = 79 Global Const $CURLE_SSL_SHUTDOWN_FAILED = 80 Global Const $CURLE_AGAIN = 81 Global Const $CURLE_SSL_CRL_BADFILE = 82 Global Const $CURLE_SSL_ISSUER_ERROR = 83 Global Const $CURLE_FTP_PRET_FAILED = 84 Global Const $CURLE_RTSP_CSEQ_ERROR = 85 Global Const $CURLE_RTSP_SESSION_ERROR = 86 Global Const $CURLE_FTP_BAD_FILE_LIST = 87 Global Const $CURLE_CHUNK_FAILED = 88 ; minimum size of error buffer to be used with $CURLOPT_ERRORBUFFER Global Const $CURL_ERROR_SIZE = 256 ; $CURLPROTO_ constants are for the $CURLOPT_*PROTOCOLS options Global Const $CURLPROTO_HTTP = BitShift(1, 0) Global Const $CURLPROTO_HTTPS = BitShift(1, -1) Global Const $CURLPROTO_FTP = BitShift(1, -2) Global Const $CURLPROTO_FTPS = BitShift(1, -3) Global Const $CURLPROTO_SCP = BitShift(1, -4) Global Const $CURLPROTO_SFTP = BitShift(1, -5) Global Const $CURLPROTO_TELNET = BitShift(1, -6) Global Const $CURLPROTO_LDAP = BitShift(1, -7) Global Const $CURLPROTO_LDAPS = BitShift(1, -8) Global Const $CURLPROTO_DICT = BitShift(1, -9) Global Const $CURLPROTO_FILE = BitShift(1, -10) Global Const $CURLPROTO_TFTP = BitShift(1, -11) Global Const $CURLPROTO_IMAP = BitShift(1, -12) Global Const $CURLPROTO_IMAPS = BitShift(1, -13) Global Const $CURLPROTO_POP3 = BitShift(1, -14) Global Const $CURLPROTO_POP3S = BitShift(1, -15) Global Const $CURLPROTO_SMTP = BitShift(1, -16) Global Const $CURLPROTO_SMTPS = BitShift(1, -17) Global Const $CURLPROTO_RTSP = BitShift(1, -18) Global Const $CURLPROTO_RTMP = BitShift(1, -19) Global Const $CURLPROTO_RTMPT = BitShift(1, -20) Global Const $CURLPROTO_RTMPE = BitShift(1, -21) Global Const $CURLPROTO_RTMPTE = BitShift(1, -22) Global Const $CURLPROTO_RTMPS = BitShift(1, -23) Global Const $CURLPROTO_RTMPTS = BitShift(1, -24) Global Const $CURLPROTO_GOPHER = BitShift(1, -25) Global Const $CURLPROTO_ALL = BitNOT(0) ; $CURLOPTTYPE_[what] constants Global Const $CURLOPTTYPE_LONG = 0 Global Const $CURLOPTTYPE_OBJECTPOINT = 10000 Global Const $CURLOPTTYPE_FUNCTIONPOINT = 20000 Global Const $CURLOPTTYPE_OFF_T = 30000 ; $CURLOPT_[what] constants, to be used with _curl_easy_setopt() Global Const $CURLOPT_FILE = $CURLOPTTYPE_OBJECTPOINT + 1 Global Const $CURLOPT_URL = $CURLOPTTYPE_OBJECTPOINT + 2 Global Const $CURLOPT_PORT = $CURLOPTTYPE_LONG + 3 Global Const $CURLOPT_PROXY = $CURLOPTTYPE_OBJECTPOINT + 4 Global Const $CURLOPT_USERPWD = $CURLOPTTYPE_OBJECTPOINT + 5 Global Const $CURLOPT_PROXYUSERPWD = $CURLOPTTYPE_OBJECTPOINT + 6 Global Const $CURLOPT_RANGE = $CURLOPTTYPE_OBJECTPOINT + 7 Global Const $CURLOPT_INFILE = $CURLOPTTYPE_OBJECTPOINT + 9 Global Const $CURLOPT_ERRORBUFFER = $CURLOPTTYPE_OBJECTPOINT + 10 Global Const $CURLOPT_WRITEFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 11 Global Const $CURLOPT_READFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 12 Global Const $CURLOPT_TIMEOUT = $CURLOPTTYPE_LONG + 13 Global Const $CURLOPT_INFILESIZE = $CURLOPTTYPE_LONG + 14 Global Const $CURLOPT_POSTFIELDS = $CURLOPTTYPE_OBJECTPOINT + 15 Global Const $CURLOPT_REFERER = $CURLOPTTYPE_OBJECTPOINT + 16 Global Const $CURLOPT_FTPPORT = $CURLOPTTYPE_OBJECTPOINT + 17 Global Const $CURLOPT_USERAGENT = $CURLOPTTYPE_OBJECTPOINT + 18 Global Const $CURLOPT_LOW_SPEED_LIMIT = $CURLOPTTYPE_LONG + 19 Global Const $CURLOPT_LOW_SPEED_TIME = $CURLOPTTYPE_LONG + 20 Global Const $CURLOPT_RESUME_FROM = $CURLOPTTYPE_LONG + 21 Global Const $CURLOPT_COOKIE = $CURLOPTTYPE_OBJECTPOINT + 22 Global Const $CURLOPT_HTTPHEADER = $CURLOPTTYPE_OBJECTPOINT + 23 Global Const $CURLOPT_HTTPPOST = $CURLOPTTYPE_OBJECTPOINT + 24 Global Const $CURLOPT_SSLCERT = $CURLOPTTYPE_OBJECTPOINT + 25 Global Const $CURLOPT_KEYPASSWD = $CURLOPTTYPE_OBJECTPOINT + 26 Global Const $CURLOPT_CRLF = $CURLOPTTYPE_LONG + 27 Global Const $CURLOPT_QUOTE = $CURLOPTTYPE_OBJECTPOINT + 28 Global Const $CURLOPT_WRITEHEADER = $CURLOPTTYPE_OBJECTPOINT + 29 Global Const $CURLOPT_COOKIEFILE = $CURLOPTTYPE_OBJECTPOINT + 31 Global Const $CURLOPT_SSLVERSION = $CURLOPTTYPE_LONG + 32 Global Const $CURLOPT_TIMECONDITION = $CURLOPTTYPE_LONG + 33 Global Const $CURLOPT_TIMEVALUE = $CURLOPTTYPE_LONG + 34 Global Const $CURLOPT_CUSTOMREQUEST = $CURLOPTTYPE_OBJECTPOINT + 36 Global Const $CURLOPT_STDERR = $CURLOPTTYPE_OBJECTPOINT + 37 Global Const $CURLOPT_POSTQUOTE = $CURLOPTTYPE_OBJECTPOINT + 39 Global Const $CURLOPT_WRITEINFO = $CURLOPTTYPE_OBJECTPOINT + 40 Global Const $CURLOPT_VERBOSE = $CURLOPTTYPE_LONG + 41 Global Const $CURLOPT_HEADER = $CURLOPTTYPE_LONG + 42 Global Const $CURLOPT_NOPROGRESS = $CURLOPTTYPE_LONG + 43 Global Const $CURLOPT_NOBODY = $CURLOPTTYPE_LONG + 44 Global Const $CURLOPT_FAILONERROR = $CURLOPTTYPE_LONG + 45 Global Const $CURLOPT_UPLOAD = $CURLOPTTYPE_LONG + 46 Global Const $CURLOPT_POST = $CURLOPTTYPE_LONG + 47 Global Const $CURLOPT_DIRLISTONLY = $CURLOPTTYPE_LONG + 48 Global Const $CURLOPT_APPEND = $CURLOPTTYPE_LONG + 50 Global Const $CURLOPT_NETRC = $CURLOPTTYPE_LONG + 51 Global Const $CURLOPT_FOLLOWLOCATION = $CURLOPTTYPE_LONG + 52 Global Const $CURLOPT_TRANSFERTEXT = $CURLOPTTYPE_LONG + 53 Global Const $CURLOPT_PUT = $CURLOPTTYPE_LONG + 54 Global Const $CURLOPT_PROGRESSFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 56 Global Const $CURLOPT_PROGRESSDATA = $CURLOPTTYPE_OBJECTPOINT + 57 Global Const $CURLOPT_AUTOREFERER = $CURLOPTTYPE_LONG + 58 Global Const $CURLOPT_PROXYPORT = $CURLOPTTYPE_LONG + 59 Global Const $CURLOPT_POSTFIELDSIZE = $CURLOPTTYPE_LONG + 60 Global Const $CURLOPT_HTTPPROXYTUNNEL = $CURLOPTTYPE_LONG + 61 Global Const $CURLOPT_INTERFACE = $CURLOPTTYPE_OBJECTPOINT + 62 Global Const $CURLOPT_KRBLEVEL = $CURLOPTTYPE_OBJECTPOINT + 63 Global Const $CURLOPT_SSL_VERIFYPEER = $CURLOPTTYPE_LONG + 64 Global Const $CURLOPT_CAINFO = $CURLOPTTYPE_OBJECTPOINT + 65 Global Const $CURLOPT_MAXREDIRS = $CURLOPTTYPE_LONG + 68 Global Const $CURLOPT_FILETIME = $CURLOPTTYPE_LONG + 69 Global Const $CURLOPT_TELNETOPTIONS = $CURLOPTTYPE_OBJECTPOINT + 70 Global Const $CURLOPT_MAXCONNECTS = $CURLOPTTYPE_LONG + 71 Global Const $CURLOPT_CLOSEPOLICY = $CURLOPTTYPE_LONG + 72 Global Const $CURLOPT_FRESH_CONNECT = $CURLOPTTYPE_LONG + 74 Global Const $CURLOPT_FORBID_REUSE = $CURLOPTTYPE_LONG + 75 Global Const $CURLOPT_RANDOM_FILE = $CURLOPTTYPE_OBJECTPOINT + 76 Global Const $CURLOPT_EGDSOCKET = $CURLOPTTYPE_OBJECTPOINT + 77 Global Const $CURLOPT_CONNECTTIMEOUT = $CURLOPTTYPE_LONG + 78 Global Const $CURLOPT_HEADERFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 79 Global Const $CURLOPT_HTTPGET = $CURLOPTTYPE_LONG + 80 Global Const $CURLOPT_SSL_VERIFYHOST = $CURLOPTTYPE_LONG + 81 Global Const $CURLOPT_COOKIEJAR = $CURLOPTTYPE_OBJECTPOINT + 82 Global Const $CURLOPT_SSL_CIPHER_LIST = $CURLOPTTYPE_OBJECTPOINT + 83 Global Const $CURLOPT_HTTP_VERSION = $CURLOPTTYPE_LONG + 84 Global Const $CURLOPT_FTP_USE_EPSV = $CURLOPTTYPE_LONG + 85 Global Const $CURLOPT_SSLCERTTYPE = $CURLOPTTYPE_OBJECTPOINT + 86 Global Const $CURLOPT_SSLKEY = $CURLOPTTYPE_OBJECTPOINT + 87 Global Const $CURLOPT_SSLKEYTYPE = $CURLOPTTYPE_OBJECTPOINT + 88 Global Const $CURLOPT_SSLENGINE = $CURLOPTTYPE_OBJECTPOINT + 89 Global Const $CURLOPT_SSLENGINE_DEFAULT = $CURLOPTTYPE_LONG + 90 Global Const $CURLOPT_DNS_USE_GLOBAL_CACHE = $CURLOPTTYPE_LONG + 91 Global Const $CURLOPT_DNS_CACHE_TIMEOUT = $CURLOPTTYPE_LONG + 92 Global Const $CURLOPT_PREQUOTE = $CURLOPTTYPE_OBJECTPOINT + 93 Global Const $CURLOPT_DEBUGFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 94 Global Const $CURLOPT_DEBUGDATA = $CURLOPTTYPE_OBJECTPOINT + 95 Global Const $CURLOPT_COOKIESESSION = $CURLOPTTYPE_LONG + 96 Global Const $CURLOPT_CAPATH = $CURLOPTTYPE_OBJECTPOINT + 97 Global Const $CURLOPT_BUFFERSIZE = $CURLOPTTYPE_LONG + 98 Global Const $CURLOPT_NOSIGNAL = $CURLOPTTYPE_LONG + 99 Global Const $CURLOPT_SHARE = $CURLOPTTYPE_OBJECTPOINT + 100 Global Const $CURLOPT_PROXYTYPE = $CURLOPTTYPE_LONG + 101 Global Const $CURLOPT_ACCEPT_ENCODING = $CURLOPTTYPE_OBJECTPOINT + 102 Global Const $CURLOPT_PRIVATE = $CURLOPTTYPE_OBJECTPOINT + 103 Global Const $CURLOPT_HTTP200ALIASES = $CURLOPTTYPE_OBJECTPOINT + 104 Global Const $CURLOPT_UNRESTRICTED_AUTH = $CURLOPTTYPE_LONG + 105 Global Const $CURLOPT_FTP_USE_EPRT = $CURLOPTTYPE_LONG + 106 Global Const $CURLOPT_HTTPAUTH = $CURLOPTTYPE_LONG + 107 Global Const $CURLOPT_SSL_CTX_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 108 Global Const $CURLOPT_SSL_CTX_DATA = $CURLOPTTYPE_OBJECTPOINT + 109 Global Const $CURLOPT_FTP_CREATE_MISSING_DIRS = $CURLOPTTYPE_LONG + 110 Global Const $CURLOPT_PROXYAUTH = $CURLOPTTYPE_LONG + 111 Global Const $CURLOPT_FTP_RESPONSE_TIMEOUT = $CURLOPTTYPE_LONG + 112 Global Const $CURLOPT_IPRESOLVE = $CURLOPTTYPE_LONG + 113 Global Const $CURLOPT_MAXFILESIZE = $CURLOPTTYPE_LONG + 114 Global Const $CURLOPT_INFILESIZE_LARGE = $CURLOPTTYPE_OFF_T + 115 Global Const $CURLOPT_RESUME_FROM_LARGE = $CURLOPTTYPE_OFF_T + 116 Global Const $CURLOPT_MAXFILESIZE_LARGE = $CURLOPTTYPE_OFF_T + 117 Global Const $CURLOPT_NETRC_FILE = $CURLOPTTYPE_OBJECTPOINT + 118 Global Const $CURLOPT_USE_SSL = $CURLOPTTYPE_LONG + 119 Global Const $CURLOPT_POSTFIELDSIZE_LARGE = $CURLOPTTYPE_OFF_T + 120 Global Const $CURLOPT_TCP_NODELAY = $CURLOPTTYPE_LONG + 121 Global Const $CURLOPT_FTPSSLAUTH = $CURLOPTTYPE_LONG + 129 Global Const $CURLOPT_IOCTLFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 130 Global Const $CURLOPT_IOCTLDATA = $CURLOPTTYPE_OBJECTPOINT + 131 Global Const $CURLOPT_FTP_ACCOUNT = $CURLOPTTYPE_OBJECTPOINT + 134 Global Const $CURLOPT_COOKIELIST = $CURLOPTTYPE_OBJECTPOINT + 135 Global Const $CURLOPT_IGNORE_CONTENT_LENGTH = $CURLOPTTYPE_LONG + 136 Global Const $CURLOPT_FTP_SKIP_PASV_IP = $CURLOPTTYPE_LONG + 137 Global Const $CURLOPT_FTP_FILEMETHOD = $CURLOPTTYPE_LONG + 138 Global Const $CURLOPT_LOCALPORT = $CURLOPTTYPE_LONG + 139 Global Const $CURLOPT_LOCALPORTRANGE = $CURLOPTTYPE_LONG + 140 Global Const $CURLOPT_CONNECT_ONLY = $CURLOPTTYPE_LONG + 141 Global Const $CURLOPT_CONV_FROM_NETWORK_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 142 Global Const $CURLOPT_CONV_TO_NETWORK_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 143 Global Const $CURLOPT_CONV_FROM_UTF8_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 144 Global Const $CURLOPT_MAX_SEND_SPEED_LARGE = $CURLOPTTYPE_OFF_T + 145 Global Const $CURLOPT_MAX_RECV_SPEED_LARGE = $CURLOPTTYPE_OFF_T + 146 Global Const $CURLOPT_FTP_ALTERNATIVE_TO_USER = $CURLOPTTYPE_OBJECTPOINT + 147 Global Const $CURLOPT_SOCKOPTFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 148 Global Const $CURLOPT_SOCKOPTDATA = $CURLOPTTYPE_OBJECTPOINT + 149 Global Const $CURLOPT_SSL_SESSIONID_CACHE = $CURLOPTTYPE_LONG + 150 Global Const $CURLOPT_SSH_AUTH_TYPES = $CURLOPTTYPE_LONG + 151 Global Const $CURLOPT_SSH_PUBLIC_KEYFILE = $CURLOPTTYPE_OBJECTPOINT + 152 Global Const $CURLOPT_SSH_PRIVATE_KEYFILE = $CURLOPTTYPE_OBJECTPOINT + 153 Global Const $CURLOPT_FTP_SSL_CCC = $CURLOPTTYPE_LONG + 154 Global Const $CURLOPT_TIMEOUT_MS = $CURLOPTTYPE_LONG + 155 Global Const $CURLOPT_CONNECTTIMEOUT_MS = $CURLOPTTYPE_LONG + 156 Global Const $CURLOPT_HTTP_TRANSFER_DECODING = $CURLOPTTYPE_LONG + 157 Global Const $CURLOPT_HTTP_CONTENT_DECODING = $CURLOPTTYPE_LONG + 158 Global Const $CURLOPT_NEW_FILE_PERMS = $CURLOPTTYPE_LONG + 159 Global Const $CURLOPT_NEW_DIRECTORY_PERMS = $CURLOPTTYPE_LONG + 160 Global Const $CURLOPT_POSTREDIR = $CURLOPTTYPE_LONG + 161 Global Const $CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 = $CURLOPTTYPE_OBJECTPOINT + 162 Global Const $CURLOPT_OPENSOCKETFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 163 Global Const $CURLOPT_OPENSOCKETDATA = $CURLOPTTYPE_OBJECTPOINT + 164 Global Const $CURLOPT_COPYPOSTFIELDS = $CURLOPTTYPE_OBJECTPOINT + 165 Global Const $CURLOPT_PROXY_TRANSFER_MODE = $CURLOPTTYPE_LONG + 166 Global Const $CURLOPT_SEEKFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 167 Global Const $CURLOPT_SEEKDATA = $CURLOPTTYPE_OBJECTPOINT + 168 Global Const $CURLOPT_CRLFILE = $CURLOPTTYPE_OBJECTPOINT + 169 Global Const $CURLOPT_ISSUERCERT = $CURLOPTTYPE_OBJECTPOINT + 170 Global Const $CURLOPT_ADDRESS_SCOPE = $CURLOPTTYPE_LONG + 171 Global Const $CURLOPT_CERTINFO = $CURLOPTTYPE_LONG + 172 Global Const $CURLOPT_USERNAME = $CURLOPTTYPE_OBJECTPOINT + 173 Global Const $CURLOPT_PASSWORD = $CURLOPTTYPE_OBJECTPOINT + 174 Global Const $CURLOPT_PROXYUSERNAME = $CURLOPTTYPE_OBJECTPOINT + 175 Global Const $CURLOPT_PROXYPASSWORD = $CURLOPTTYPE_OBJECTPOINT + 176 Global Const $CURLOPT_NOPROXY = $CURLOPTTYPE_OBJECTPOINT + 177 Global Const $CURLOPT_TFTP_BLKSIZE = $CURLOPTTYPE_LONG + 178 Global Const $CURLOPT_SOCKS5_GSSAPI_SERVICE = $CURLOPTTYPE_OBJECTPOINT + 179 Global Const $CURLOPT_SOCKS5_GSSAPI_NEC = $CURLOPTTYPE_LONG + 180 Global Const $CURLOPT_PROTOCOLS = $CURLOPTTYPE_LONG + 181 Global Const $CURLOPT_REDIR_PROTOCOLS = $CURLOPTTYPE_LONG + 182 Global Const $CURLOPT_SSH_KNOWNHOSTS = $CURLOPTTYPE_OBJECTPOINT + 183 Global Const $CURLOPT_SSH_KEYFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 184 Global Const $CURLOPT_SSH_KEYDATA = $CURLOPTTYPE_OBJECTPOINT + 185 Global Const $CURLOPT_MAIL_FROM = $CURLOPTTYPE_OBJECTPOINT + 186 Global Const $CURLOPT_MAIL_RCPT = $CURLOPTTYPE_OBJECTPOINT + 187 Global Const $CURLOPT_FTP_USE_PRET = $CURLOPTTYPE_LONG + 188 Global Const $CURLOPT_RTSP_REQUEST = $CURLOPTTYPE_LONG + 189 Global Const $CURLOPT_RTSP_SESSION_ID = $CURLOPTTYPE_OBJECTPOINT + 190 Global Const $CURLOPT_RTSP_STREAM_URI = $CURLOPTTYPE_OBJECTPOINT + 191 Global Const $CURLOPT_RTSP_TRANSPORT = $CURLOPTTYPE_OBJECTPOINT + 192 Global Const $CURLOPT_RTSP_CLIENT_CSEQ = $CURLOPTTYPE_LONG + 193 Global Const $CURLOPT_RTSP_SERVER_CSEQ = $CURLOPTTYPE_LONG + 194 Global Const $CURLOPT_INTERLEAVEDATA = $CURLOPTTYPE_OBJECTPOINT + 195 Global Const $CURLOPT_INTERLEAVEFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 196 Global Const $CURLOPT_WILDCARDMATCH = $CURLOPTTYPE_LONG + 197 Global Const $CURLOPT_CHUNK_BGN_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 198 Global Const $CURLOPT_CHUNK_END_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 199 Global Const $CURLOPT_FNMATCH_FUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 200 Global Const $CURLOPT_CHUNK_DATA = $CURLOPTTYPE_OBJECTPOINT + 201 Global Const $CURLOPT_FNMATCH_DATA = $CURLOPTTYPE_OBJECTPOINT + 202 Global Const $CURLOPT_RESOLVE = $CURLOPTTYPE_OBJECTPOINT + 203 Global Const $CURLOPT_TLSAUTH_USERNAME = $CURLOPTTYPE_OBJECTPOINT + 204 Global Const $CURLOPT_TLSAUTH_PASSWORD = $CURLOPTTYPE_OBJECTPOINT + 205 Global Const $CURLOPT_TLSAUTH_TYPE = $CURLOPTTYPE_OBJECTPOINT + 206 Global Const $CURLOPT_TRANSFER_ENCODING = $CURLOPTTYPE_LONG + 207 Global Const $CURLOPT_CLOSESOCKETFUNCTION = $CURLOPTTYPE_FUNCTIONPOINT + 208 Global Const $CURLOPT_CLOSESOCKETDATA = $CURLOPTTYPE_OBJECTPOINT + 209 Global Const $CURLOPT_GSSAPI_DELEGATION = $CURLOPTTYPE_LONG + 210 Global Const $CURLOPT_DNS_SERVERS = $CURLOPTTYPE_OBJECTPOINT + 211 Global Const $CURLOPT_ACCEPTTIMEOUT_MS = $CURLOPTTYPE_LONG + 212 Global Const $CURLOPT_TCP_KEEPALIVE = $CURLOPTTYPE_LONG + 213 Global Const $CURLOPT_TCP_KEEPIDLE = $CURLOPTTYPE_LONG + 214 Global Const $CURLOPT_TCP_KEEPINTVL = $CURLOPTTYPE_LONG + 215 Global Const $CURLOPT_SSL_OPTIONS = $CURLOPTTYPE_LONG + 216 Global Const $CURLOPT_MAIL_AUTH = $CURLOPTTYPE_OBJECTPOINT + 217 ; some convenient "aliases" that follow the name scheme better Global Const $CURLOPT_WRITEDATA = $CURLOPT_FILE Global Const $CURLOPT_READDATA = $CURLOPT_INFILE Global Const $CURLOPT_HEADERDATA = $CURLOPT_WRITEHEADER Global Const $CURLOPT_RTSPHEADER = $CURLOPT_HTTPHEADER ; for use with _curl_global_init() Global Const $CURL_GLOBAL_SSL = BitShift(1, 0) Global Const $CURL_GLOBAL_WIN32 = BitShift(1, -1) Global Const $CURL_GLOBAL_ALL = BitOR($CURL_GLOBAL_SSL, $CURL_GLOBAL_WIN32) Global Const $CURL_GLOBAL_NOTHING = 0 Global Const $CURL_GLOBAL_DEFAULT = $CURL_GLOBAL_ALL Global Const $CURLINFO_STRING = 0x100000 Global Const $CURLINFO_LONG = 0x200000 Global Const $CURLINFO_DOUBLE = 0x300000 Global Const $CURLINFO_SLIST = 0x400000 Global Const $CURLINFO_MASK = 0x0fffff Global Const $CURLINFO_TYPEMASK = 0xf00000 Global Const $CURLINFO_EFFECTIVE_URL = $CURLINFO_STRING + 1 Global Const $CURLINFO_RESPONSE_CODE = $CURLINFO_LONG + 2 Global Const $CURLINFO_TOTAL_TIME = $CURLINFO_DOUBLE + 3 Global Const $CURLINFO_NAMELOOKUP_TIME = $CURLINFO_DOUBLE + 4 Global Const $CURLINFO_CONNECT_TIME = $CURLINFO_DOUBLE + 5 Global Const $CURLINFO_PRETRANSFER_TIME = $CURLINFO_DOUBLE + 6 Global Const $CURLINFO_SIZE_UPLOAD = $CURLINFO_DOUBLE + 7 Global Const $CURLINFO_SIZE_DOWNLOAD = $CURLINFO_DOUBLE + 8 Global Const $CURLINFO_SPEED_DOWNLOAD = $CURLINFO_DOUBLE + 9 Global Const $CURLINFO_SPEED_UPLOAD = $CURLINFO_DOUBLE + 10 Global Const $CURLINFO_HEADER_SIZE = $CURLINFO_LONG + 11 Global Const $CURLINFO_REQUEST_SIZE = $CURLINFO_LONG + 12 Global Const $CURLINFO_SSL_VERIFYRESULT = $CURLINFO_LONG + 13 Global Const $CURLINFO_FILETIME = $CURLINFO_LONG + 14 Global Const $CURLINFO_CONTENT_LENGTH_DOWNLOAD = $CURLINFO_DOUBLE + 15 Global Const $CURLINFO_CONTENT_LENGTH_UPLOAD = $CURLINFO_DOUBLE + 16 Global Const $CURLINFO_STARTTRANSFER_TIME = $CURLINFO_DOUBLE + 17 Global Const $CURLINFO_CONTENT_TYPE = $CURLINFO_STRING + 18 Global Const $CURLINFO_REDIRECT_TIME = $CURLINFO_DOUBLE + 19 Global Const $CURLINFO_REDIRECT_COUNT = $CURLINFO_LONG + 20 Global Const $CURLINFO_PRIVATE = $CURLINFO_STRING + 21 Global Const $CURLINFO_HTTP_CONNECTCODE = $CURLINFO_LONG + 22 Global Const $CURLINFO_HTTPAUTH_AVAIL = $CURLINFO_LONG + 23 Global Const $CURLINFO_PROXYAUTH_AVAIL = $CURLINFO_LONG + 24 Global Const $CURLINFO_OS_ERRNO = $CURLINFO_LONG + 25 Global Const $CURLINFO_NUM_CONNECTS = $CURLINFO_LONG + 26 Global Const $CURLINFO_SSL_ENGINES = $CURLINFO_SLIST + 27 Global Const $CURLINFO_COOKIELIST = $CURLINFO_SLIST + 28 Global Const $CURLINFO_LASTSOCKET = $CURLINFO_LONG + 29 Global Const $CURLINFO_FTP_ENTRY_PATH = $CURLINFO_STRING + 30 Global Const $CURLINFO_REDIRECT_URL = $CURLINFO_STRING + 31 Global Const $CURLINFO_PRIMARY_IP = $CURLINFO_STRING + 32 Global Const $CURLINFO_APPCONNECT_TIME = $CURLINFO_DOUBLE + 33 Global Const $CURLINFO_CERTINFO = $CURLINFO_SLIST + 34 Global Const $CURLINFO_CONDITION_UNMET = $CURLINFO_LONG + 35 Global Const $CURLINFO_RTSP_SESSION_ID = $CURLINFO_STRING + 36 Global Const $CURLINFO_RTSP_CLIENT_CSEQ = $CURLINFO_LONG + 37 Global Const $CURLINFO_RTSP_SERVER_CSEQ = $CURLINFO_LONG + 38 Global Const $CURLINFO_RTSP_CSEQ_RECV = $CURLINFO_LONG + 39 Global Const $CURLINFO_PRIMARY_PORT = $CURLINFO_LONG + 40 Global Const $CURLINFO_LOCAL_IP = $CURLINFO_STRING + 41 Global Const $CURLINFO_LOCAL_PORT = $CURLINFO_LONG + 42 Global Const $CURLINFO_HTTP_CODE = $CURLINFO_RESPONSE_CODE ; The _curl_easy_pause function pauses or unpauses transfers. Select the new state by setting the bitmask, use the convenience defines below. Global Const $CURLPAUSE_RECV = BitShift(1, 0) Global Const $CURLPAUSE_RECV_CONT = 0 Global Const $CURLPAUSE_SEND = BitShift(1, -2) Global Const $CURLPAUSE_SEND_CONT = 0 Global Const $CURLPAUSE_ALL = BitOR($CURLPAUSE_RECV, $CURLPAUSE_SEND) Global Const $CURLPAUSE_CONT = BitOR($CURLPAUSE_RECV_CONT, $CURLPAUSE_SEND_CONT) Global Const $CURL_WRITEFUNC_PAUSE = 0x10000001 Global Const $CURL_READFUNC_ABORT = 0x10000000 Global Const $CURL_READFUNC_PAUSE = 0x10000001 ; $CURLFORM_[what] constants, to be used with _curl_formadd() Global Const $CURLFORM_COPYNAME = 1 Global Const $CURLFORM_PTRNAME = 2 Global Const $CURLFORM_NAMELENGTH = 3 Global Const $CURLFORM_COPYCONTENTS = 4 Global Const $CURLFORM_PTRCONTENTS = 5 Global Const $CURLFORM_CONTENTSLENGTH = 6 Global Const $CURLFORM_FILECONTENT = 7 Global Const $CURLFORM_ARRAY = 8 Global Const $CURLFORM_OBSOLETE = 9 Global Const $CURLFORM_FILE = 10 Global Const $CURLFORM_BUFFER = 11 Global Const $CURLFORM_BUFFERPTR = 12 Global Const $CURLFORM_BUFFERLENGTH = 13 Global Const $CURLFORM_CONTENTTYPE = 14 Global Const $CURLFORM_CONTENTHEADER = 15 Global Const $CURLFORM_FILENAME = 16 Global Const $CURLFORM_END = 17 Global Const $CURLFORM_OBSOLETE2 = 18 Global Const $CURLFORM_STREAM = 19 ; return codes for _curl_formadd() Global Const $CURL_FORMADD_OK = 0 Global Const $CURL_FORMADD_MEMORY = 1 Global Const $CURL_FORMADD_OPTION_TWICE = 2 Global Const $CURL_FORMADD_NULL = 3 Global Const $CURL_FORMADD_UNKNOWN_OPTION = 4 Global Const $CURL_FORMADD_INCOMPLETE = 5 Global Const $CURL_FORMADD_ILLEGAL_ARRAY = 6 Global Const $CURL_FORMADD_DISABLED = 7 ; CURLversion Global Const $CURLVERSION_FIRST = 0 Global Const $CURLVERSION_SECOND = 1 Global Const $CURLVERSION_THIRD = 2 Global Const $CURLVERSION_FOURTH = 3 Global Const $CURLVERSION_NOW = $CURLVERSION_FOURTH Global Const $CURL_VERSION_IPV6 = BitShift(1, 0) Global Const $CURL_VERSION_KERBEROS4 = BitShift(1, -1) Global Const $CURL_VERSION_SSL = BitShift(1, -2) Global Const $CURL_VERSION_LIBZ = BitShift(1, -3) Global Const $CURL_VERSION_NTLM = BitShift(1, -4) Global Const $CURL_VERSION_GSSNEGOTIATE = BitShift(1, -5) Global Const $CURL_VERSION_DEBUG = BitShift(1, -6) Global Const $CURL_VERSION_ASYNCHDNS = BitShift(1, -7) Global Const $CURL_VERSION_SPNEGO = BitShift(1, -8) Global Const $CURL_VERSION_LARGEFILE = BitShift(1, -9) Global Const $CURL_VERSION_IDN = BitShift(1, -10) Global Const $CURL_VERSION_SSPI = BitShift(1, -11) Global Const $CURL_VERSION_CONV = BitShift(1, -12) Global Const $CURL_VERSION_CURLDEBUG = BitShift(1, -13) Global Const $CURL_VERSION_TLSAUTH_SRP = BitShift(1, -14) Global Const $CURL_VERSION_NTLM_WB = BitShift(1, -15) libcURL.au3 #include-once #include <libcURLConstants.au3> ; #INDEX# ======================================================================================================================= ; Title .........: libcURL UDF version 1.0 ; AutoIt Version : 3.3.6.1 + ; Language ......: English ; Description ...: URL transfer functions etc., built on 04/06/2012 05:11:23 GMT, uses libcurl, v7.25.0+, the multiprotocol file transfer library ; Author(s) .....: smartee ; Dll ...........: libcurl.dll ; =============================================================================================================================== ; #VARIABLES# =================================================================================================================== Global $g_hDll_libcurl = -1 ; =============================================================================================================================== ; #CURRENT# ===================================================================================================================== ;_curl_easy_escape ;_curl_easy_init ;_curl_easy_cleanup ;_curl_easy_duphandle ;_curl_easy_getinfo ;_curl_easy_pause ;_curl_easy_perform ;_curl_easy_recv ;_curl_easy_reset ;_curl_easy_send ;_curl_easy_setopt ;_curl_easy_strerror ;_curl_easy_unescape ;_curl_formadd ;_curl_formfree ;_curl_free ;_curl_getdate ;_curl_global_cleanup ;_curl_global_init ;_curl_global_init_mem ;_curl_slist_append ;_curl_slist_free_all ;_curl_version ;_curl_version_info ; =============================================================================================================================== ; #INTERNAL_USE_ONLY# =========================================================================================================== ;__cURL_DllOpen ;__cURL_DllClose ; =============================================================================================================================== ; #FUNCTION# ==================================================================================================================== ; Name...........: _curl_easy_escape ; Description ...: URL encodes the given string ; Syntax.........: _curl_easy_escape($curl, $url, $length) ; Parameters ....: $curl - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $url - String to be URL encoded. ; $length - Length of the string. If the length argument is set to 0 (zero), _curl_easy_escape() uses strlen() on the input url to find out the size. ; |0 - Calculate length. ; Return values .: Success - The URL encoded string. ; Failure - An empty string, "" ; Author ........: smartee ; Modified.......: ; Remarks .......: ; Related .......: None. ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_escape.html">http://curl.haxx.se/libcurl/c/curl_easy_escape.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_escape($curl, $url, $length) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, "") Local $aRes = DllCall($g_hDll_libcurl, "str:cdecl", "curl_easy_escape", "ptr", $curl, "str", $url, "int", $length) If @error Then Return SetError(2, @extended, "") Return $aRes[0] EndFunc ;==>_curl_easy_escape ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_init ; Description ...: Start a libcurl easy session ; Syntax ........: _curl_easy_init() ; Parameters ....: None. ; Return values .: Success - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_cleanup, _curl_global_init, _curl_easy_reset ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_init.html">http://curl.haxx.se/libcurl/c/curl_easy_init.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_init() If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "ptr:cdecl", "curl_easy_init") If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_init ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_cleanup ; Description ...: End a libcurl easy session ; Syntax ........: _curl_easy_cleanup($handle) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; Return values .: Success - 1 ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_init ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html">http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_cleanup($handle) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) DllCall($g_hDll_libcurl, "none:cdecl", "curl_easy_cleanup", "ptr", $handle) If @error Then Return SetError(2, @extended, 0) Return 1 EndFunc ;==>_curl_easy_cleanup ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_duphandle ; Description ...: Clone a libcurl session handle ; Syntax ........: _curl_easy_duphandle($handle) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; Return values .: Success - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_init, _curl_easy_cleanup, _curl_global_init ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_duphandle.html">http://curl.haxx.se/libcurl/c/curl_easy_duphandle.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_easy_duphandle($handle) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "ptr:cdecl", "curl_easy_duphandle", "ptr", $handle) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_duphandle ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_getinfo ; Description ...: Extract information from a curl handle ; Syntax ........: _curl_easy_getinfo($handle, $option, Byref $parameter) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $option - A $CURLINFO_* value. ; $parameter - A variable to be filled in accordingly that can be relied upon only if the function returns $CURLE_OK. ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_setopt ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html">http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_getinfo($handle, $option, ByRef $parameter) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $asTypes[4] = ["ptr", "long", "double", "ptr"] Local $iParamType = Int($option / 0x100000) - 1 Local $tCURLSTRUCT_INFO = DllStructCreate($asTypes[$iParamType]) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_easy_getinfo", "ptr", $handle, "int", $option, "ptr", DllStructGetPtr($tCURLSTRUCT_INFO)) If @error Then Return SetError(2, @extended, -1) Switch $iParamType Case 0 Local $tCURLSTRUCT_INFOBUFFER = DllStructCreate("char[256]", DllStructGetData($tCURLSTRUCT_INFO, 1)) $parameter = DllStructGetData($tCURLSTRUCT_INFOBUFFER, 1) Case Else $parameter = DllStructGetData($tCURLSTRUCT_INFO, 1) EndSwitch Return $aRes[0] EndFunc ;==>_curl_easy_getinfo ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_pause ; Description ...: Pause and unpause a connection ; Syntax ........: _curl_easy_pause($handle, $bitmask) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $bitmask - A $CURLPAUSE_* value that sets the new state of the connection. ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_cleanup, _curl_easy_reset ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_pause.html">http://curl.haxx.se/libcurl/c/curl_easy_pause.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_easy_pause($handle, $bitmask) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_easy_pause", "ptr", $handle, "int", $bitmask) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_pause ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_perform ; Description ...: Perform a file transfer ; Syntax ........: _curl_easy_perform($handle) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_init, _curl_easy_setopt ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_perform.html">http://curl.haxx.se/libcurl/c/curl_easy_perform.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_perform($handle) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_easy_perform", "ptr", $handle) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_perform ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_recv ; Description ...: Receives raw data on an "easy" connection ; Syntax ........: _curl_easy_recv($handle, $buffer, $buflen, $n) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $buffer - A pointer to your buffer that will get the received data. ; $buflen - The maximum amount of data you can get in that buffer. ; $n - A pointer to a variable that will receive the number of received bytes. ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_setopt, _curl_easy_perform ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_recv.html">http://curl.haxx.se/libcurl/c/curl_easy_recv.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_easy_recv($handle, $buffer, $buflen, $n) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_easy_recv", "ptr", $handle, "ptr", $buffer, "uint", $buflen, "ptr", $n) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_recv ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_reset ; Description ...: Reset all options of a libcurl session handle ; Syntax ........: _curl_easy_reset($handle) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; Return values .: Success - 1 ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_init, _curl_easy_cleanup, _curl_easy_setopt ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_reset.html">http://curl.haxx.se/libcurl/c/curl_easy_reset.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_easy_reset($handle) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) DllCall($g_hDll_libcurl, "none:cdecl", "curl_easy_reset", "ptr", $handle) If @error Then Return SetError(2, @extended, 0) Return 1 EndFunc ;==>_curl_easy_reset ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_send ; Description ...: Sends raw data over an "easy" connection ; Syntax ........: _curl_easy_send($handle, $buffer, $buflen, $n) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $buffer - A pointer to your buffer with data to be sent. ; $buflen - Length of buffer. ; $n - A pointer to a variable that will receive the number of sent bytes. ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_setopt, _curl_easy_perform, _curl_easy_getinfo ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_send.html">http://curl.haxx.se/libcurl/c/curl_easy_send.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_easy_send($handle, $buffer, $buflen, $n) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_easy_send", "ptr", $handle, "ptr", $buffer, "uint", $buflen, "ptr", $n) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_send ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_setopt ; Description ...: Set options for a curl easy handle ; Syntax ........: _curl_easy_setopt($handle, $option, $parameter) ; Parameters ....: $handle - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $option - A $CURLOPT_* value. ; $parameter - A long, a function pointer, an object pointer or a large integer, depending on what the specific option expects. ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_init, _curl_easy_cleanup, _curl_easy_reset ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_setopt.html">http://curl.haxx.se/libcurl/c/curl_easy_setopt.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_setopt($handle, $option, $parameter) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $asTypes[4] = ["long", "ptr", "ptr", "int64"] Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_easy_setopt", "ptr", $handle, "int", $option, $asTypes[Int($option / 10000)], $parameter) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_easy_setopt ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_strerror ; Description ...: Return string describing error code ; Syntax ........: _curl_easy_strerror($errnum) ; Parameters ....: $errnum - A $CURLE_* error code. ; Return values .: Success - A string describing the error code passed in the argument $errornum. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: None. ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_strerror.html">http://curl.haxx.se/libcurl/c/curl_easy_strerror.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_strerror($errnum) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, "") Local $aRes = DllCall($g_hDll_libcurl, "str:cdecl", "curl_easy_strerror", "int", $errnum) If @error Then Return SetError(2, @extended, "") Return $aRes[0] EndFunc ;==>_curl_easy_strerror ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_easy_unescape ; Description ...: URL decodes the given string ; Syntax ........: _curl_easy_unescape($curl, $url, $inlength, $outlength) ; Parameters ....: $curl - A handle (often referred to as an "easy handle"), which you use as input to the easy interface functions you use. Use _curl_easy_init() to get the handle. ; $url - String to be decoded. ; $inlength - Length of string, if set to 0 (zero), _curl_easy_unescape() will use strlen() on the input url string to find out the size. ; $outlength - If outlength is non-NULL, the function will write the length of the returned string in the integer it points to. This allows an escaped string containing %00 to still get used properly after unescaping. ; Return values .: Success - A pointer to a zero terminated string or NULL. ; Failure - An empty string, "", Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_escape, _curl_free ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_easy_unescape.html">http://curl.haxx.se/libcurl/c/curl_easy_unescape.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_easy_unescape($curl, $url, $inlength, $outlength) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, "") Local $aRes = DllCall($g_hDll_libcurl, "str:cdecl", "curl_easy_unescape", "ptr", $curl, "str", $url, "int", $inlength, "ptr", $outlength) If @error Then Return SetError(2, @extended, "") Return $aRes[0] EndFunc ;==>_curl_easy_unescape ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_formadd ; Description ...: Add a section to a multipart/formdata HTTP POST ; Syntax ........: _curl_formadd($firstitem, $lastitem, $option, $parameter, $option2, $parameter2[, $option3 = $CURLFORM_END]) ; Parameters ....: $firstitem - A pointer to the firstitem. ; $lastitem - A pointer to the lastitem. ; $option - A $CURLFORM_* value. ; $parameter - A string value depending on $option. ; $option2 - A $CURLFORM_* value. ; $parameter2 - A string value depending on $option. ; $option3 - [optional] A $CURLFORM_* value. Default is $CURLFORM_END. ; Return values .: Success - $CURL_FORMADD_OK or a $CURL_FORMADD_* code. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_easy_setopt, _curl_formfree ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_formadd.html">http://curl.haxx.se/libcurl/c/curl_formadd.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_formadd($firstitem, $lastitem, $option, $parameter, $option2, $parameter2, $option3 = $CURLFORM_END) If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_formadd", "ptr", $firstitem, "ptr", $lastitem, "int", $option, "str", $parameter, "int", $option2, "str", $parameter2, "int", $option3) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_formadd ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_formfree ; Description ...: Free a previously build multipart/formdata HTTP POST chain ; Syntax ........: _curl_formfree($form) ; Parameters ....: $form - A pointer as returned from a previous call to _curl_formadd() and may be NULL. ; Return values .: Success - 1 ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_formadd ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_formfree.html">http://curl.haxx.se/libcurl/c/curl_formfree.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_formfree($form) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) DllCall($g_hDll_libcurl, "none:cdecl", "curl_formfree", "ptr", $form) If @error Then Return SetError(2, @extended, 0) Return 1 EndFunc ;==>_curl_formfree ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_free ; Description ...: Reclaim memory that has been obtained through a libcurl call ; Syntax ........: _curl_free($ptr) ; Parameters ....: $ptr - A pointer value. ; Return values .: Success - 1 ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: None. ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_free.html">http://curl.haxx.se/libcurl/c/curl_free.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_free($ptr) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) DllCall($g_hDll_libcurl, "none:cdecl", "curl_free", "str", $ptr) If @error Then Return SetError(2, @extended, 0) Return 1 EndFunc ;==>_curl_free ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_getdate ; Description ...: Convert a date string to number of seconds since January 1, 1970 ; Syntax ........: _curl_getdate($datestring, $now) ; Parameters ....: $datestring - A string containing several items separated by whitespace. The order of the items is immaterial. ; $now - Not used, pass a NULL there. ; Return values .: Success - The number of seconds as described. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; |3 - Failed to parse the date string. ; Author ........: smartee ; Modified ......: ; Remarks .......: This parser was written to handle date formats specified in RFC 822 (including the update in RFC 1123) using time zone name or time zone delta and RFC 850 (obsoleted by RFC 1036) and ANSI C's asctime() format. ; These formats are the only ones RFC 2616 says HTTP applications may use. ; Related .......: None. ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_getdate.html">http://curl.haxx.se/libcurl/c/curl_getdate.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_getdate($datestring, $now) If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "uint:cdecl", "curl_getdate", "str", $datestring, "ptr", $now) If @error Then Return SetError(2, @extended, -1) If $aRes[0] = -1 Then Return SetError(3, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_getdate ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_global_cleanup ; Description ...: Global libcurl cleanup ; Syntax ........: _curl_global_cleanup() ; Parameters ....: None. ; Return values .: Success - 1 ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: This function releases resources acquired by _curl_global_init(). ; Related .......: _curl_global_init ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_global_cleanup.html">http://curl.haxx.se/libcurl/c/curl_global_cleanup.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_global_cleanup() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) DllCall($g_hDll_libcurl, "none:cdecl", "curl_global_cleanup") If @error Then Return SetError(2, @extended, 0) Return 1 EndFunc ;==>_curl_global_cleanup ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_global_init ; Description ...: Global libcurl initialisation ; Syntax ........: _curl_global_init($flags) ; Parameters ....: $flags - A bit pattern that tells libcurl exactly what features to init. (A $CURL_GLOBAL_* value.) ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_global_init_mem ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_global_init.html">http://curl.haxx.se/libcurl/c/curl_global_init.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_global_init($flags) If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_global_init", "long", $flags) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_global_init ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_global_init_mem ; Description ...: Global libcurl initialisation with memory callbacks ; Syntax ........: _curl_global_init_mem($flags, $m, $f, $r, $s, $c) ; Parameters ....: $flags - A bit pattern that tells libcurl exactly what features to init. (A $CURL_GLOBAL_* value.) ; $m - Callback for malloc, prototype: void *malloc_callback(size_t size); ; $f - Callback for free, prototype: void free_callback(void *ptr); ; $r - Callback for realloc, prototype: void *realloc_callback(void *ptr, size_t size); ; $s - Callback for strdup, prototype: char *strdup_callback(const char *str); ; $c - Callback for malloc, prototype: void *calloc_callback(size_t nmemb, size_t size); ; Return values .: Success - $CURLE_OK or an appropriate $CURLE_* error code will be returned. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: Manipulating these gives considerable powers to the application to severely screw things up for libcurl. Take care! ; Related .......: _curl_global_init, _curl_global_cleanup ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_global_init_mem.html">http://curl.haxx.se/libcurl/c/curl_global_init_mem.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_global_init_mem($flags, $m, $f, $r, $s, $c) If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "int:cdecl", "curl_global_init_mem", "long", $flags, "ptr", $m, "ptr", $f, "ptr", $r, "ptr", $s, "ptr", $c) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_global_init_mem ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_slist_append ; Description ...: Add a string to an slist ; Syntax ........: _curl_slist_append($list, $string) ; Parameters ....: $list - A list pointer. ; $string - A string value. ; Return values .: Success - A new list pointer. ; Failure - A null pointer or -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_slist_free_all ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_slist_append.html">http://curl.haxx.se/libcurl/c/curl_slist_append.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_slist_append($list, $string) If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "ptr:cdecl", "curl_slist_append", "ptr", $list, "str", $string) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_slist_append ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_slist_free_all ; Description ...: Free an entire curl_slist list ; Syntax ........: _curl_slist_free_all($list) ; Parameters ....: $list - A list pointer. ; Return values .: Success - 1 ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_slist_append ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_slist_free_all.html">http://curl.haxx.se/libcurl/c/curl_slist_free_all.html</a> ; Example .......: Yes ; =============================================================================================================================== Func _curl_slist_free_all($list) If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) DllCall($g_hDll_libcurl, "none:cdecl", "curl_slist_free_all", "ptr", $list) If @error Then Return SetError(2, @extended, 0) Return 1 EndFunc ;==>_curl_slist_free_all ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_version ; Description ...: Returns the libcurl version string ; Syntax ........: _curl_version() ; Parameters ....: None. ; Return values .: Success - A pointer to a zero terminated string. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_version_info ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_version.html">http://curl.haxx.se/libcurl/c/curl_version.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_version() If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, "") Local $aRes = DllCall($g_hDll_libcurl, "str:cdecl", "curl_version") If @error Then Return SetError(2, @extended, "") Return $aRes[0] EndFunc ;==>_curl_version ; #FUNCTION# ==================================================================================================================== ; Name ..........: _curl_version_info ; Description ...: Returns run-time libcurl version info ; Syntax ........: _curl_version_info($type) ; Parameters ....: $type - The version of this functionality by the time you write your program. ; Return values .: Success - A pointer to a curl_version_info_data struct. ; Failure - -1, Sets @Error: ; |1 - DLL could not be opened. ; |2 - DllCall failed. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: _curl_version ; Link ..........: <a target="_blank" href="http://curl.haxx.se/libcurl/c/curl_version_info.html">http://curl.haxx.se/libcurl/c/curl_version_info.html</a> ; Example .......: No ; =============================================================================================================================== Func _curl_version_info($type) If $g_hDll_libcurl == -1 Then __cURL_DllOpen() If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, -1) Local $aRes = DllCall($g_hDll_libcurl, "ptr:cdecl", "curl_version_info", "int", $type) If @error Then Return SetError(2, @extended, -1) Return $aRes[0] EndFunc ;==>_curl_version_info ; #INTERNAL_USE_ONLY# =========================================================================================================== ;__cURL_DllOpen ;__cURL_DllClose ; Name ..........: __cURL_DllOpen ; Description ...: Opens the libcurl DLL for use with this UDF library. ; Syntax ........: __cURL_DllOpen() ; Parameters ....: None. ; Return values .: Success - 1, Sets $g_hDll_libcurl to the DLL's handle. ; Failure - 0, Sets @Error: ; |1 - DLL could not be opened. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: __cURL_DllClose ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func __cURL_DllOpen() $g_hDll_libcurl = DllOpen("libcurl.dll") If $g_hDll_libcurl == -1 Then Return SetError(1, @extended, 0) OnAutoItExitRegister("__cURL_DllClose") Return 1 EndFunc ;==>__cURL_DllOpen ; #INTERNAL_USE_ONLY# =========================================================================================================== ;__cURL_DllOpen ;__cURL_DllClose ; Name ..........: __cURL_DllClose ; Description ...: Closes a open handle to the libcurl DLL. ; Syntax ........: __cURL_DllClose() ; Parameters ....: None. ; Return values .: None. ; Author ........: smartee ; Modified ......: ; Remarks .......: ; Related .......: __cURL_DllOpen ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func __cURL_DllClose() If $g_hDll_libcurl <> -1 Then DllClose($g_hDll_libcurl) $g_hDll_libcurl = -1 EndFunc ;==>__cURL_DllClose Example 1: _curl_slist_append.au3 #include <libcURL.au3> _Demo1() Func _Demo1() Local $sURL = "http://www.google.com/search?q=http+headers" Local $hcurl = _curl_easy_init() If ($hcurl) Then ; set referer Local $ptNewList = _curl_slist_append(0, "Referer: http://www.google.com") ; add a custom accept $ptNewList = _curl_slist_append($ptNewList, "Accept: foo") Local $tCURLSTRUCT_URL = DllStructCreate("char[" & StringLen($sURL) + 1 & "]") DllStructSetData($tCURLSTRUCT_URL, 1, $sURL) _curl_easy_setopt($hcurl, $CURLOPT_URL, DllStructGetPtr($tCURLSTRUCT_URL)) _curl_easy_setopt($hcurl, $CURLOPT_VERBOSE, 1) _curl_easy_perform($hcurl) ; redo request with our custom headers: _curl_easy_setopt($hcurl, $CURLOPT_HTTPHEADER, $ptNewList) _curl_easy_perform($hcurl) _curl_slist_free_all($ptNewList) _curl_easy_cleanup($hcurl) EndIf EndFunc ;==>_Demo1 TODO: "multi" interface"share" interfaceDownload: LAST UPDATED: 06-APR-2012 Here's a zipped file with everything you need to get started, (Help-file with examples, calltips.api, userudfs.properties, current libcurl.dll (v7.25.0 & deps) etc.) libcURLUDFv1.0.zip 1.09 MB All feedback is welcome -smartee
-
Hello everyone! I am trying to make a script that uploads files for me in wordpress(All I need to do is to manually choose which files to upload) Here is my script so far: #include <FileConstants.au3> #include <MsgBoxConstants.au3> Upload() Func Upload() $sPD = "log=username&pwd=mypassword&wp-submit=Log+ind&redirect_to=http%3A%2F%2Fmyurl.com%2Fwp-admin%2F&testcookie=1" oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("POST", "http://myurl.com/wp-login.php " & $sUSR, False) ; Post url $oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") $oHTTP.SetRequestHeader("Accept-Language", "en-US,en;q=0.5") $oHTTP.SetRequestHeader("User-Agent", "User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.52 YaBrowser/15.12.2490.3614 (beta) Yowser/2.5 Safari/537.36") $oHTTP.SetRequestHeader("Referer", "http://myurl.com/wp-login.php?redirect_to=http%3A%2F%2Fmyurl.com%2Fwp-admin%2F&reauth=1") $oHTTP.SetRequestHeader("Cookie", "wordpress_test_cookie=WP+Cookie+check") $oHTTP.SetRequestHeader("Connection", "keep-alive") $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") ; Header data > $oHTTP.Send($sPD) $oHTTP.Open("GET", "http://myurl.com/wp-admin/media-new.php", False) ; Post url $oHTTP.SetRequestHeader("Host", "myurl.com") $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0") $oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") $oHTTP.SetRequestHeader("Accept-Language", "en-US,en;q=0.5") $oHTTP.SetRequestHeader("Referer", "http://myurl.com/wp-admin/") $oHTTP.Send() Endfunc The upload button = "Choose Files" Example code from: https://www.autoitscript.com/autoit3/docs/functions/FileOpenDialog.htm #include <FileConstants.au3> #include <MsgBoxConstants.au3> Example() Func Example() ; Create a constant variable in Local scope of the message to display in FileOpenDialog. Local Const $sMessage = "Select a single file of any type." ; Display an open dialog to select a file. Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST) If @error Then ; Display the error message. MsgBox($MB_SYSTEMMODAL, "", "No file was selected.") ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder. FileChangeDir(@ScriptDir) Else ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder. FileChangeDir(@ScriptDir) ; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog. $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF) ; Display the selected file. MsgBox($MB_SYSTEMMODAL, "", "You chose the following file:" & @CRLF & $sFileOpenDialog) EndIf EndFunc ;==>Example The HTML: <p class="drag-drop-buttons"><input style="position: relative; z-index: 1;" id="plupload-browse-button" value="Choose Files" class="button" type="button"></p> Some header info in the HTTP request: POST http://myurl.com/wp-admin/async-upload.php HTTP/1.1 Host: myurl.com User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://myurl.com/wp-admin/media-new.php Content-Length: 4555551 Content-Type: multipart/form-data; boundary=---------------------------12345678910 Cookie: LONG COOKIE HERE! DNT: 1 Connection: keep-alive -----------------------------102062144610664 Content-Disposition: form-data; name="name" hdfhfg.jpg -----------------------------102062144610664 Content-Disposition: form-data; name="post_id" 0 -----------------------------102062144610664 Content-Disposition: form-data; name="_wpnonce" 123456 -----------------------------102062144610664 Content-Disposition: form-data; name="type" -----------------------------102062144610664 Content-Disposition: form-data; name="tab" -----------------------------102062144610664 Content-Disposition: form-data; name="short" 1 -----------------------------102062144610664 Content-Disposition: form-data; name="async-upload"; filename="hdfhfg.jpg" Content-Type: image/jpeg This wouldn't be much of a problem if I just had some simple post data, but this makes my head spin.... Thanks in advance Masters! (I could probably easily do this with IE, but I'd rather not use IE, I am not a big fan of it)
-
Hi mates, well this is my first contribution. a simple UDF to use Virustotal API v2.0 The response return is not parsed|splitted. requires >WinHttp UDF Functions List: Update: Now a Only Function using a flags for respective mode. VT() Use respective flag($Type) VT(ByRef $aAPI, $Type, $sResource, $sAPIkey,$Comments="") flags($Type) $fReport = retrieve a scan report on a given file $fScan = submit a file for Scanning $fRescan = Rescan files in VirusTotal's file store $uReport = retrieve a scan report on a given URL $uScan = submit a URL for Scanning $Comment = Make a commnet on files and URLs Example: #include <Crypt.au3> #include "VT.au3" Example() Func Example() _Crypt_Startup() Local $sFilePath = @WindowsDir & "\Explorer.exe" Local $bHash = _Crypt_HashFile($sFilePath, $CALG_MD5) _Crypt_Shutdown() Local $hVirusTotal = VT_Open() Local $APIkey='Your API key' ConsoleWrite(VT($hVirusTotal, $fReport, '20c83c1c5d1289f177bc222d248dab261a62529b19352d7c0f965039168c0654',$APIkey) & @CRLF) ConsoleWrite(VT($hVirusTotal, $fScan, $sFilePath,$APIkey) & @CRLF) ConsoleWrite(VT($hVirusTotal, $fRescan, hex($bHash),$APIkey) & @CRLF) ConsoleWrite(VT($hVirusTotal, $uReport, "http://www.virustotal.com",$APIkey) & @CRLF) ConsoleWrite(VT($hVirusTotal, $uScan, "http://www.google.com",$APIkey) & @CRLF) ConsoleWrite(VT($hVirusTotal, $Comment, hex($bHash) ,$APIkey,"Hello Word | Hola Mundo") & @CRLF) VT_Close($hVirusTotal) ; EndFunc ;==>Example Saludos VT.au3
- 51 replies
-
- Virustotal
- POST
- (and 4 more)
-
Greeting, so I've been trying to come up with solution, but no luck. Despite I tried to automate upload function, I released that it freezes after "Choose File to Upload" window appears.. #include <IE.au3> ;#include <_Dbug.au3> Global $oIE = _IECreate("http://tinypic.com/", 1) Global $upload2 = _IEGetObjById($oIE, "the_file") _IEAction($upload2, "click") ;Sleep(1000) $hWnd = WinGetHandle("Choose File to Upload") MsgBox(0, "", $hWnd) Have anybody faced this situation? btw: srry for the advertise Besides it's no matter which site I'm trying to do this it's all the same.
- 1 reply
-
- choose file to upload
- stuck
-
(and 3 more)
Tagged with:
-
I need to find a way to cick a file Browse button on a website and then upload an image that was previously selected by the user via an Autoit gui... (as you will see I am assigning $imUpload the file path via guictrlread for each of the selected Images.... It will do just fine going though the submission process until it gets to this image upload page. When it gets to this page it will open the file upload box (here is a pic of it being opened by the autoit script: http://snag.gy/171RS.jpg As you can clearly see it opens the image upload box just fine however it does not send the file path via Send($imUp1) "here is a pic of the msgbox that is showing me it did grab the right file path for the image: However that msgbox doesn't show up unless I close the file upload box... so that is where the code freezup has been narrowed down to... I have tried to be as specific as possible if there is anymore info I can provide that would be usefull please let me know Here is what I have so far code wise... (i know its hack/slash im new to guis and autoit coding sorry for the eyehurt) *any commented lines of code I have tried but couldn't get them to work... the uncommented lines get the farthest out of them all* Do $imUpload = $imUploadCount + 1 If $ImageCount >= 6 Then $ImageCount = 6 EndIf $oForm = _IEFormGetObjByName($ksl, "f-142") $oInputFile = _IEFormElementGetObjByName($oForm, "142") ;Assign input focus To the field And Then send the text string ;_IEAction($oInputFile, "focus") ;$iBrowserX = _IEPropertyGet($oInputFile, "browserx") ;$iBrowserY = _IEPropertyGet($oInputFile, "browsery") ;$iWidth = _IEPropertyGet($oInputFile, "width") ;$iHeight = _IEPropertyGet($oInputFile, "height") ;ControlClick(_IEPropertyGet($ksl, "hwnd"), "", "", "left", 1, $iBrowserX + $iWidth / 2, $iBrowserY + $iHeight / 2) _IEAction($oInputFile, "click") ;$oInputFile = _IELinkGetCollection($ksl, 142) ;$oInputFile.fireEvent("onmouseup") ;$oInputFile.click If $imUpload = 1 Then $imUp1 = GUICtrlRead($Image1) Sleep(1500) ElseIf $imUpload = 2 Then $imUp1 = GUICtrlRead($Image2) Sleep(1500) ElseIf $imUpload = 3 Then $imUp1 = GUICtrlRead($Image3) Sleep(1500) ElseIf $imUpload = 4 Then $imUp1 = GUICtrlRead($Image4) Sleep(1500) ElseIf $imUpload = 5 Then $imUp1 = GUICtrlRead($Image5) Sleep(1500) ElseIf $imUpload = 6 Then $imUp1 = GUICtrlRead($Image6) Sleep(1500) EndIf MsgBox("MSG", "$imUp1", $imUp1) Send($imUp1) Sleep(1500) Send("{ENTER}") ;Find Image Description field! $descriptionimfield = _IEGetObjById($ksl, "d-142") If Not @error Then ; MsgBox("Success", "Email Input Found", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Found", "Try Again!") Exit EndIf ;Fill Image Description(s) field! If $imUpload = 1 Then _IEFormElementSetValue($descriptionimfield, $Image1_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 2 Then _IEFormElementSetValue($descriptionimfield, $Image2_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 3 Then _IEFormElementSetValue($descriptionimfield, $Image3_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 4 Then _IEFormElementSetValue($descriptionimfield, $Image4_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 5 Then _IEFormElementSetValue($descriptionimfield, $Image5_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf ElseIf $imUpload = 6 Then _IEFormElementSetValue($descriptionimfield, $Image6_Description) If Not @error Then ; MsgBox("Success", "Email Input Filled", "Next Step!") Else ;MsgBox("Failed", "Email Input Not Filled", "Try Again!") Exit EndIf EndIf ;Go to Next page! $oButtons = _IETagNameGetCollection($ksl, "input") For $oButton In $oButtons If String($oButton.value) = "Upload File" Then _IEAction($oButton, "click") ;MsgBox("Success", "Login Successful!", "Login Credentials Verified!") ExitLoop Else EndIf Next Sleep(2000) Until $imUpload >= $ImageCount Here is a picture of the webpage that I am interacting with in IE: http://snag.gy/7hQ4y.jpg Here is the webpage code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!-- template-beta --> <script type="text/javascript"> var xdbt_start = (new Date()).getTime(); </script> <!-- <script src="/scripts/search.js" language="javascript" type="text/javascript"></script> --> <title>Place a FREE Classified Ad | ksl.com</title> <meta property="og:title" content="Place a FREE Classified Ad | ksl.com" /> <meta name="keywords" content="news, traffic, weather, sports, classifieds, cars, jobs, homes, television, radio, salt lake, utah, local" /> <meta name="description" content="The KSL.COM Website" /> <meta name="publication_date" content="2005-07-31" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Language" content="en-us" /> <meta http-equiv="imagetoolbar" content="no" /> <meta name="verify-v1" content="Hfa7cDQ0+6irKfA233lorv0N2hQ99FyQwAkFAkWMk+U=" /> <meta property="og:image" content="" /> <meta property="og:type" content="article" /> <meta name="author" content="" /> <meta property="og:article:author" content="" /> <meta name="Copyright" content="Copyright (c) KSL.COM" /> <meta name="robots" content="all" /> <meta name="MSSmartTagsPreventParsing" content="true" /> <meta name="Rating" content="General" /> <meta name="revisit-after" content="1 Day" /> <meta name="doc-class" content="Living Document" /> <style type="text/css" media="screen">@import "/templates/template-v3.css";</style> <style type="text/css" media="screen">@import "/templates/navPopOver.css";</style> <script type="text/javascript" src="/packages/jquery/jquery-1.7.min.js"></script> <script type="text/javascript" src="/packages/jquery/bgiframe-2.1.1.js"></script> <script type="text/javascript" src="/packages/jquery/dimensions-1.2.0.js"></script> <script type="text/javascript" src="/packages/jquery-ui/jquery-ui-1.8.16.custom.min.js"></script> <!-- <script type="text/javascript" src="/javascript/popOverMenu.js"></script> --> <!-- <script type="text/javascript" src="/javascript/tvRadioPopOver.js"></script> --> <style type="text/css" media="projection">@import "/templates/template-v3.css";</style> <link rel="canonical" href="http://www.ksl.com/?nid=640&sid=4516794" /> <meta property="og:url" content="http://www.ksl.com/?nid=640&sid=4516794" /> <link rel="apple-touch-icon" href="apple-touch-icon.png" /> <link rel="stylesheet" media="only screen and (max-device-width:480px)" href="/templates/navPopOver.css" type="text/css" /> <link rel="stylesheet" media="screen and (min-device-width:481 px)" href="/templates/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="print" href="/templates/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="handheld" href="/templates/navPopOver.css" /> <link type="text/css" rel="alternate stylesheet" href="/templates/navPopOver.css" title = "mobile"/> <link rel="stylesheet" media="only screen and (max-device-width:480px)" href="/templates/template-v3.css" type="text/css" /> <link rel="stylesheet" media="screen and (min-device-width:481 px)" href="/templates/template-v3.css" /> <link type="text/css" rel="stylesheet" media="print" href="/templates/template-v3.css" /> <link type="text/css" rel="stylesheet" media="handheld" href="/templates/template-v3.css" /> <link type="text/css" rel="alternate stylesheet" href="/templates/template-v3.css" title = "mobile"/> <link type="image/x-icon" rel="Shortcut Icon" href="/favicon.ico" /> <link rel="help" href="/about.php" title="Site info" /> <script type="text/javascript"> function openMenu(mid) { document.getElementById(mid).style.display = 'block'; } function openScript(url, width, height) { var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=yes,scrollbars=yes,menubar=no,status=yes' ); } function logondemand(action) { document.getElementById('onDemandback').src = "http://tools.bonnint.net/ondemandlogger.php?action=" + action; } var init_object = new Object; $(document).ready( function() { for (var i_func in init_object) { init_object[i_func](); } }); </script> <!-- Make Dropdowns work on iPad --> <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { if(navigator.platform == "iPad") { $("a").each(function() { // have to use an `each` here - either a jQuery `each` or a `for(...)` loop var onClick; // this will be a function var firstClick = function() { onClick = secondClick; return false; }; var secondClick = function() { onClick = firstClick; return true; }; onClick = firstClick; $(this).click(function() { return onClick(); }); }); } }); </script> --> <!-- End Make Dropdowns work on iPad --> <script type="text/javascript"> var _user_id = 2566029; // IMPORTANT! Set to the user's ID, username, or email address, or '' if not yet known. var _session_id = '0e98c75518605de0b498139d5d5f1c1e'; // Set to a unique session ID for the visitor's current browsing session. var _sift = _sift || []; _sift.push(['_setAccount', "46e0e4c3e4"]); _sift.push(['_setUserId', _user_id]); _sift.push(['_setSessionId', _session_id]); _sift.push(['_trackPageview']); (function() { function ls() { var e = document.createElement('script'); e.type = 'text/javascript'; e.async = true; e.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.siftscience.com/s.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); } if (window.attachEvent) { window.attachEvent('onload', ls); } else { window.addEventListener('load', ls, false); } })(); </script> </head> <body > <script type="text/javascript"> $(document).ready(function(){ $('#adTakeOverLeft, #adTakeOverRight').each(function(){ var elem = $(this); var top = elem.offset().top; if ($(window).scrollTop() > top) { elem.animate({ top: $(window).scrollTop() }, 500); } $(window).scroll(function(){ var offset = top - $(window).scrollTop(); offset = (offset > 0) ? offset : 0; elem.stop(true).css({ top: offset, position: 'fixed' }); }); }); }); </script> <style> #adTakeOverLeft, #adTakeOverRight { position: absolute; /* set to fixed in js */ top: 143px; margin:0; width:200px; overflow:visible; } #adTakeOverLeft { left: 50%; margin:0 0 0 -712px; *margin:0 0 0 -1024px; text-align:right; } #adTakeOverRight { right: 50%; margin: 0 -712px 0 0; text-align:left; } .adTakeOverInner img { border:0; } .adTakeOverInner a:link, .adTakeOverInner a:visited, .adTakeOverInner a:hover { text-decoration: none; } #adTakeOverLeft .adTakeOverInner { float:right; } #adTakeOverRight .adTakeOverInner { float:left; } /* @todo: delete this #mainoutsideBlock { background:gray; } #mainBlock { background:silver; } #bodyBlock { background:tan; } */ </style> <div id="adTakeOverLeft"> <div class="adTakeOverInner"> <!-- <img src="http://s0.2mdn.net/viewad/3065301/AFCU_Auto_300x600_2_13_12.jpg" /> --> <!-- <img src="/graphics/takeover_left.jpg" /> --> </div> </div> <div id="adTakeOverRight"> <div class="adTakeOverInner"> <!-- <img src="http://s0.2mdn.net/viewad/3065301/AFCU_Auto_300x600_2_13_12.jpg" /> --> <!-- <img src="/graphics/takeover_right.jpg" /> --> </div> </div> <style> #navMenu a.active { text-decoration: underline; } #headMenu a:hover { background: #b1cdff !important; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } #headMenu a:hover img { background-color: #b1cdff !important; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } #navBlock { background: rgb(177, 205, 255) !important; /* Old browsers */ background: -moz-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%) !important;; /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(177, 205, 255, 1)), color-stop(47%, rgba(153, 190, 255, 1)), color-stop(100%, rgba(140, 182, 255, 1))) !important; /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%) !important; /* Opera 11.10+ */ background: -ms-linear-gradient(top, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%) !important; /* IE10+ */ background: linear-gradient(to bottom, rgba(177, 205, 255, 1) 0%, rgba(153, 190, 255, 1) 47%, rgba(140, 182, 255, 1) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b1cdff', endColorstr='#8cb6ff', GradientType=0); /* IE6-9 */ box-shadow: 0 5px 9px -6px #888 !important; border-radius: 0px 0px 2px 2px; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 0px 0px 2px 2px; -moz-border-radius: 0px 0px 2px 2px; } #headMenu .on, #headMenu .Homeon { background-color: #b1cdff !important; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } .on-sticky { background: #b1cdff !important; float: left; height: 34px; background-image: none; background-repeat: no-repeat; background-position: 0px 20px; margin: 0; padding: 0; border-radius: 2px 2px 0px 0px !important; /* top left, top right, bottom right, bottom left */ -webkit-border-radius: 2px 2px 0px 0px !important; -moz-border-radius: 2px 2px 0px 0px !important; } .on-sticky a { font-weight: bold; color: #0c162f !important; padding: 10px 5px 11px 5px; } #headMenu li.off.on { background: #b1cdff url('http://static.ksl.com/header/header_graphics/home-button_on.png') 0 7px no-repeat; } #headMenu li.off.on img { visibility: hidden; } </style> <script type="text/javascript"> var kslHeaderMeta = { kslLinkPrefix: '/' }; </script> <!-- <script type="text/javascript" src="//static.ksl.com/header/header_includes/popOverMenu.js?cachebust=2"></script> --> <script type="text/javascript" src="//static.ksl.com/header/header_includes/tvRadioPopOver.js?cachebust=2"></script> <style type="text/css" media="screen">@import "//static.ksl.com/header/header_includes/navPopOver.css";</style> <style> #headBlock .bottom { height: 34px !important; } </style> <style type="text/css" media="screen">@import "//static.ksl.com/header/header.css";</style> <link rel="stylesheet" media="only screen and (max-device-width:480px)" href="//static.ksl.com/header/header_includes/navPopOver.css" type="text/css" /> <link rel="stylesheet" media="screen and (min-device-width:481 px)" href="//static.ksl.com/header/header_includes/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="print" href="//static.ksl.com/header/header_includes/navPopOver.css" /> <link type="text/css" rel="stylesheet" media="handheld" href="//static.ksl.com/header/header_includes/navPopOver.css" /> <link type="text/css" rel="alternate stylesheet" href="//static.ksl.com/header/header_includes/navPopOver.css" title = "mobile"/> <!-- empty div for popOver --> <div id="tvRadioWindow"></div> <div id="headBlock"> <div class="Channels" data-vr-zone="HP Channels"> <span class="utility"> <span class="utility-login"><span class="utility-login-loggedin"><a href="/public/member/home" data-vr-contentbox="account details" title="View account details">Hello rm4453</a> | <a href="https://www.ksl.com/public/member/logout?login_forward=%2Findex.php%3Fnid%3D640%26form_3%3D16%26form_4%3D467" data-vr-contentbox="logout" title="Logout of ksl.com">Logout</a></span></span> <a href="//www.ksl.com/?sid=15956469&nid=322" data-vr-contentbox="" title="Leave feedback about your experience">Feedback</a> <a href="//www.ksl.com/index.php?nid=205" data-vr-contentbox="" title="Contact KSL Customer Support">Contact Us</a> </span> <!-- end utility --> <div style="float: left;" class="tvRadioPopOver" nid="15"> <a href="/?nid=15" data-vr-contentbox="KSL TV" alt="KSL TV">KSL TV</a> </div> <div style="float: left;"> <img style="margin-top: 3px; float: left; display: block;" src="//static.ksl.com/header/header_graphics/downArrow.png" border=0/> </div> <div style="float: left;" class="tvRadioPopOver" nid="16"> <a href="/?nid=16" alt="KSL Newsradio" data-vr-contentbox="KSL Newsradio">KSL Newsradio</a> </div> <div style="float: left;"> <img style="margin-top: 3px; float: left; display: block;" src="//static.ksl.com/header/header_graphics/downArrow.png" border=0/> </div> <div style="float: left;"> <a href="http://live.ksl.com/scheduler/embed-view" alt="KSL Mobile" style="color: #fff;" data-vr-contentbox="KSL Live">KSL Live!</a> </div> <div style="float: left;"> </div> <div style="float: left;"> <a href="/?nid=1114" alt="KSL SHows" style="color: #fff;" data-vr-contentbox="KSL Shows">KSL Shows</a> </div> <div style="float: left;"> </div> <div style="float: left;"> <a href="/?nid=1072" alt="iWitness" style="color: #fff;" data-vr-contentbox="iWitness">iWitness</a> </div> <div style="float: left;"> </div> <div style="float: left;"> <a href="/?sid=17920249&nid=250" alt="KSL Mobile" style="color: #fff;" data-vr-contentbox="Mobile">Mobile</a> </div> <div style="float: left;"></div> </div> <!-- Channels --> <div class="middle"> <div class="logo"> <a href="/index.php?nid=210"><img src="//static.ksl.com/header/header_graphics/logo.png" border=0></a> </div> <!-- WX box --> <div class="titleBox"> <a href="/index.php?nid=13"><font style="color: #fff; font-size: 36px;"> » Classifieds</font></a> </div> <!-- End of WX box --> <!-- Search box --> <!-- Temporary JS to get search working --> <script type="text/javascript"> function selectSearch() { var searchMethod = $("#search_select").val(); var searchKeyword = $("#search_keyword").val(); if (searchMethod == 'news') { window.location.href = "/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Ar955z1-wmf4&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=kslcom&q=" + searchKeyword + "&x=15&y=19"; return false; } else if (searchMethod == 'keyword') { //$('#search_form').attr('action', '/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Ar955z1-wmf4&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=keyword&q=' + searchKeyword + '&x=11&y=16'); window.location.href = "/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Ar955z1-wmf4&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=keyword&q=" + searchKeyword + "&x=11&y=16"; return false; } else if (searchMethod == 'classifieds') { window.location.href = "/index.php?nid=231&search=" + searchKeyword; return false; } else if (searchMethod == 'local') { window.location.href = "http://local.ksl.com/search/keyword/" + searchKeyword + "/location/Salt+Lake+City%2C+UT+84101"; return false; } else if (searchMethod == 'web') { window.location.href = "/?sid=53574&nid=208&cx=partner-pub-3771868546990559%3Afhkopy-oe3c&cof=FORID%3A9&ie=ISO-8859-1&sa=Search&searchtype=web&q=" + searchKeyword + "&x=0&y=0"; return false; } return false; } </script> <!-- END Temporary JS to get search working --> <form id="search_form" action="" method="get" onSubmit="return selectSearch();"> <div class="searchBox"> <input type="image" src="//static.ksl.com/header/header_graphics/search-magnify.png" class="button"/> <span class="dropdown"> <select id="search_select" class="dropdownMenu"> <option value="news">all of KSL</option> <option value="classifieds">Classifieds</option> <option value="local">Local</option> <option value="web">Web</option> <option value="keyword">Keyword</option> </select> </span> <input type="text" name="search" id="search_keyword" class="searchField" value="Enter Keyword" onclick="this.value = ''"/> </div> </form> <!-- End of Search box --> </div> <!-- middle --> <!-- Main Nav --> <div class="bottom"> <div id="headMenu" data-vr-zone="Head Menu"> <ul> <li class="off" nid="210"><a href="/index.php?nid=210" style=" padding: 0px 0px 10px 0px; background: none !important; height: auto; width: 100%;" data-vr-contentbox=""> <img src="//static.ksl.com/header/header_graphics/home-button.png" border=0> </a></li> <li class="navHover" nid="30"><a href="/index.php?nid=30" data-vr-contentbox=""> Utah </a></li> <li class="navHover" nid="998"><a href="/index.php?nid=998" data-vr-contentbox=""> Features </a></li> <li class="navHover" nid="31"><a href="/index.php?nid=31" data-vr-contentbox=""> U.S. </a></li> <li class="navHover" nid="32"><a href="/index.php?nid=32" data-vr-contentbox=""> World </a></li> <li class="navHover" nid="599"><a href="/index.php?nid=599" data-vr-contentbox=""> Politics </a></li> <li class="navHover" nid="115"><a href="/index.php?nid=769" data-vr-contentbox=""> Sports </a></li> <li class="navHover" nid="88"><a href="/?nid=88" data-vr-contentbox=""> Weather </a></li> <li class="navHover" nid="710"><a href="/index.php?nid=710" data-vr-contentbox=""> Traffic </a></li> <li class="navHover" nid="116"><a href="/index.php?nid=116" data-vr-contentbox=""> Biz </a></li> <li class="navHover" nid="11"><a href="/index.php?nid=11" data-vr-contentbox=""> Entertainment </a></li> <li class="navHover" nid="1168"><a href="/?nid=1287" data-vr-contentbox=""> Outdoors </a></li> <li class="navHover" nid="1267"><a href="/index.php?nid=1267" data-vr-contentbox=""> BrandView </a></li> </ul> </div> <div id="headclassifiedMenu" data-vr-zone="Marketplace Nav"> <ul> <li><a href="https://shops.ksl.com" data-vr-contentbox="" title="" style="position: relative;">Shops <div class="beta">Beta</div></a></li> <li><a href="/deals" data-vr-contentbox="" title="View today's discounts and deals">Deals</a></li> <li><a href="//local.ksl.com/" data-vr-contentbox="" title="Find Coupons & Discounts from Local Businesses">Local</a></li> <li ><a href="/jobs/" data-vr-contentbox="">Jobs</a></li> <li ><a href="/homes" data-vr-contentbox="">Homes</a></li> <li ><a href="/auto" data-vr-contentbox="">Cars</a></li> <li class="off"><a href="/index.php?nid=13" data-vr-contentbox="">Classifieds</a></li> </ul> </div> <!-- headclassifiedMenu --> </div> <!-- bottom --> </div> <!-- headBlock --> <!-- empty div for popOver --> <div id="popOverWindow"></div> <script> var SCROLL_OUT_DELAY = 500; var scrollTimer; var HOME_NID = '640' || 210; var PARENT_NID = '640' || 210; var activeNid = HOME_NID; var links = jQuery.parseJSON('[{"nid":"210","children":[]},{"nid":"30","children":[{"href":"\/index.php?nid=148","name":"Local Stories"},{"href":"\/index.php?nid=680","name":"Education"},{"href":"\/index.php?nid=308","name":"KSL Investigates"},{"href":"\/index.php?nid=1174","name":"Your Life - Your Health"},{"href":"\/index.php?nid=694","name":"Staying Safe"},{"href":"\/index.php?nid=1196","name":"More on the web"}]},{"nid":"998","children":[{"href":"\/index.php?nid=999","name":"Family"},{"href":"\/index.php?nid=1008","name":"HYST?"},{"href":"\/index.php?nid=1285","name":"Uplifting"},{"href":"\/index.php?nid=1000","name":"Lifestyle"},{"href":"\/index.php?nid=1287","name":"Outdoors & Rec"},{"href":"\/index.php?nid=1007","name":"Religion"},{"href":"\/index.php?nid=1283","name":"LDS Life"},{"href":"\/index.php?nid=1002","name":"Science & Tech"},{"href":"\/index.php?nid=333","name":"Odds & Ends"},{"href":"\/index.php?nid=1072","name":"iWitness"},{"href":"\/index.php?nid=1358","name":"Initiatives"}]},{"nid":"31","children":[]},{"nid":"32","children":[]},{"nid":"599","children":[]},{"nid":"115","children":[{"href":"?nid=774","name":"BYU"},{"href":"?nid=827","name":"UofU"},{"href":"?nid=862","name":"Jazz"},{"href":"?nid=859","name":"USU"},{"href":"?nid=854","name":"RSL"},{"href":"?nid=853","name":"Prep"},{"href":"\/index.php?nid=1150","name":"SUU"},{"href":"\/index.php?nid=1151","name":"Weber"},{"href":"\/index.php?nid=1251","name":"UVU"},{"href":"\/index.php?nid=259","name":"Pickem"},{"href":"http:\/\/ksl.sportsdirectinc.com\/gamematchups.aspx","name":"Stats\/Scores"},{"href":"?nid=1356","name":"More"}]},{"nid":"88","children":[{"href":"http:\/\/www.ksl.com\/index.php?nid=1255","name":"Home"},{"href":"\/index.php?nid=525","name":"Current Conditions"},{"href":"\/index.php?nid=175","name":"VORTEX"},{"href":"\/index.php?nid=233","name":"MicroCast"},{"href":"?sid=35584527&nid=149","name":"Pollen Count"},{"href":"\/index.php?nid=340","name":"Junior Weather Specialists"},{"href":"?sid=128553&nid=522","name":"Ski Report"},{"href":"\/index.php?nid=524","name":"Weather Cams"},{"href":"?nid=580","name":"Water Watch"},{"href":"\/index.php?nid=978","name":"Snowpack"},{"href":"\/index.php?nid=1311","name":"myAir"},{"href":"\/index.php?nid=1314","name":"Air Quality"}]},{"nid":"710","children":[{"href":"?nid=710","name":"KSL Traffic Center"}]},{"nid":"116","children":[]},{"nid":"11","children":[{"href":"http:\/\/movies.ksl.com","name":"Movie Reviews & Listings"},{"href":"\/index.php?nid=1204","name":"Entertainment News"}]},{"nid":"1168","children":[{"href":"http:\/\/outdoors.ksl.com\/","name":"Outdoors Activity Map"},{"href":"http:\/\/www.ksl.com\/index.php?nid=1113&sid=17217040&title=ksl-outdoors-with-adam-eakle","name":"KSL Outdoors with Adam Eakle"}]},{"nid":"1267","children":[{"href":"\/index.php?nid=1300","name":"Young Automotive Auto Review"},{"href":"\/index.php?nid=1306","name":"UofU Health Feed"},{"href":"\/index.php?nid=1332","name":"Green Tea HP"},{"href":"\/index.php?nid=1339","name":"Mountain America Money Matters"},{"href":"\/index.php?nid=1351","name":"MountainStar HealthShare"},{"href":"\/index.php?nid=1371","name":"UCAIR"},{"href":"\/index.php?nid=1375","name":"Zero Fatalities"},{"href":"\/index.php?nid=1379","name":"Salt Lake Regional Medical Center"},{"href":"\/index.php?nid=1381","name":"Broadway at the Eccles"}]},{"nid":"13","children":[{"href":"\/index.php?nid=47","name":"Browse Ads"},{"href":"\/index.php?nid=443","name":"Cars"},{"href":"?sid=5017903&nid=651","name":"Homes"},{"href":"\/jobs\/listings","name":"Jobs"},{"href":"\/index.php?sid=&nid=793","name":"Services"},{"href":"\/index.php?nid=640","name":"Place a FREE Ad"},{"href":"http:\/\/www.ksl.com\/index.php?nid=443&sid=733005&tab=post","name":"Place a FREE Car Ad"},{"href":"\/index.php?nid=280","name":"My Ads"},{"href":"\/index.php?nid=385","name":"Advanced Search"},{"href":"\/index.php?nid=207","name":"Help"}]}]'); var linksMap = jQuery.parseJSON('["210","30","998","31","32","599","115","88","710","116","11","1168","1267",640]'); if ($.inArray(parseInt(HOME_NID), linksMap) < 0) { HOME_NID = parseInt($("#headMenu li.on-sticky").attr("nid")) || 210; } for (var i = 0, len = linksMap.length; i < len; i++) { linksMap[i] = parseInt(linksMap[i]); } function subNavRow(links) { var panel = ''; if (!('children' in links)) { links.children = []; } for (var i = 0, len = links.children.length; i < len; i++) { panel += '<li><a href="' + links.children[i].href + '">' + links.children[i].name + '</a></li>'; } return panel; } function getSubNav(nid) { nid = parseInt(nid); activeNid = nid; var _links = void 0; var index = $.inArray(nid, linksMap); if (index >= 0) { _links = links[index]; } else { var _nid = $("#headMenu .on").attr("nid") || 0; _nid = parseInt(_nid); if (_nid <= 0) { _links = []; } else if ($.inArray(_nid, linksMap) >= 0) { _links = links[$.inArray(_nid, linksMap)]; } } var html = subNavRow(_links); $("#navBlock #navMenu ul").html(html); } function onMouseOver(event) { event.preventDefault(); clearTimeout(scrollTimer); var nid = $(this).parent().attr("nid"); getSubNav(nid); } function onMouseOverSub(event) { event.preventDefault(); clearTimeout(scrollTimer); $("#headMenu li[nid]").removeClass("on"); $("#headMenu li[nid='" + activeNid + "']").addClass("on"); } function onMouseOut(event) { event.preventDefault(); scrollTimer = setTimeout(function () { getSubNav(HOME_NID); activeNid = HOME_NID; $("#headMenu li[nid]").removeClass("on"); }, SCROLL_OUT_DELAY); } $("#headMenu").on("mouseover", "li[nid] a", onMouseOver); // These registrations *must* be rooted on body because that's [currently] the nearest ancestor // attached to the DOM by the time this code is executed. #headMenu and #navBlock don't get // attached until after this code executes. $("body").on("mouseover", "#headMenu li, #navBlock", onMouseOverSub); $("body").on("mouseout", "#headMenu li, #navBlock", onMouseOut); setTimeout(function () { getSubNav(HOME_NID); $("#navMenu a[href*='nid=640']").addClass("active"); }, 100); </script> <div id="mainoutsideBlock"> <div id="mainBlock"> <div id="navBlockorange"> <!-- .................... Block: subNavBar .................... --> <div id="navMenuorange"> <ul> <li><a href="/?nid=47">Classifieds</a></li> <li><a href="/auto">Cars</a></li> <li><a href="/homes">Homes</a></li> <li><a href="/jobs/">Jobs</a></li> </ul> <ul style="float: right; margin-top: 0px; margin-right: 5px;"> <li><a href="/?nid=385">Advanced Search</a></li> <li><a href="/?nid=207">Help</a></li> <li><a href="/myAds/listing-classified">My Ads</a></li> <li class="on"> <a class="placeAdHover" href="/?nid=1126" style="">Place an Ad <img style="margin-bottom: -3px;" height="8" width="8" src="/images/classifieds/placeAdArrow.jpg" border="0" /></a> </li> </ul> </div> <!-- navMenu --> <!-- Place an Ad popOver --> <div id="popOverWindow"></div> <!--[if IE]> <style type="text/css"> #placeAdDropdown { margin-right: -492px; } .placeAdHover { margin-top: -5px; } </style> <![endif]--> <script type="text/javascript" src="/javascript/placeAdPopOver.js?cachebust=2"></script> <!-- <div id="placeAdDropdown" style="position: absolute; right: 172px; top: 23px; display: none; width: 70px; height: 53px; /* left: 1043px;*/ background-color: #f7941d; z-index: 99;"> --> <div id="placeAdDropdown" > <!-- <a href="/?nid=1126" style="color: white; margin-bottom: 5px; margin-left: 5px; margin-top: 5px;">Classified</a><br /> --> <a href="/?nid=1126" style="color: white; margin: 5px;">Classified</a><br /> <a href="/auto/sell" style="color: white; margin: 5px;">Car</a><br /> <a href="http://local.ksl.com/merchant/list/look-up" style="color: white; margin: 5px;" >Business</a><br /> <a href="/jobs/edit" style="color: white; margin: 5px;" >Job</a><br /> <a href="/homes/sell/sell-choice" style="color: white; margin: 5px;">Home</a> </div> <!-- End Place Ad PopOver --> </div> <!-- navBlock --> <div id="bodyBlock"> <!-- .................... Block: column1 .................... --> <div id="bodyCol1"> <div style="width: 424px; float: left; margin: 0px 0px 10px 0px;"> <style type='text/css'> .announcement_box { float: left; clear:left; margin: 0px 0px 20px 0px; background: #eee; width: 615px; padding: 10px; font-size: 14px; font-weight: bold; } .announcement_box a { text-decoration:none; } </style> <div class="announcement_box"> <font color="#aa0000">UPDATE:</font> Services is now part of <a href="http://local.ksl.com/?s_cid=services">KSL Local</a> with more categories and added features.<br /> To take full advantage of KSL Local be sure to <a href="http://local.ksl.com/merchant/locations">add your business</a> today. Service ads posted outside of KSL Local will be deleted.<br /> </div> <div style='clear: both;'></div> </div> <div style="width: 424px; float: left; margin: 0px 0px 10px 0px;"> <!-- Hack --> <script type="text/javascript"> $(document).ready( function() { $('#3').attr('disabled', 'disabled'); $('#4').attr('disabled', 'disabled'); $('.element:eq(3)').append( ' <a href="index.php?nid=1126">Change »</a>' ); $('.element:eq(4)').append( ' <a href="index.php?nid=1126">Change »</a>' ); } ); </script> </div> <div id="bodyCol2"> <!-- ===================[ STORY PAGES ]================= --> <!-- ===================[ STORY MEDIA ]================= --> <!-- ===================[ STORY RELATED ]================= --> <!-- ===================[ STORY RELATED ]================= --> <!-- ===================[ STORY GALLERIES ]================= --> </div> <script language="JavaScript" type="text/javascript"> function addInputs() { var oNewNode = document.createElement("div"); oNewNode.setAttribute("style","padding-top: 5px;"); document.getElementById('attr_fields').appendChild(oNewNode); oNewNode.innerHTML="<input type=\"text\" name=\"text[]\" id=\"text[]\" size=\"25\" \/>"; // document.getElementById('attr_fields').innerHTML="<input type=\"text\" name=\"text[]\" id=\"text[]\" size=\"25\" \/>"; } var mediaCount = 0; // ================================================================ function addMedia(ctrlID,divID,inputName,limit) { var name = "media_"+mediaCount; var oNewNode = document.createElement("div"); oNewNode.setAttribute("style","padding-top: 3px;"); oNewNode.setAttribute("id",name); document.getElementById(divID).appendChild(oNewNode); oNewNode.innerHTML="<input name=\""+inputName+"[]\" type=\"file\" /> <a href=\"#\" onClick=\"delMedia('"+ctrlID+"','"+name+"')\">Remove</a>"; mediaCount++; if (document.getElementById(divID).childNodes.length >= limit) { document.getElementById(ctrlID).style.display = "none"; } // document.getElementById('attr_fields').innerHTML="<input type=\"text\" name=\"text[]\" id=\"text[]\" size=\"25\" \/>"; } // ================================================================ function delMedia(ctrlID,name) { var oNode = document.getElementById(name); oNode.parentNode.removeChild(oNode); mediaCount--; document.getElementById(ctrlID).style.display = "block"; } var subName; // ================================================================ function setCat(cName,sName,col,tId) { var sNode = document.getElementById(sName); var cIndex = document.getElementById(cName).selectedIndex; var cValue = document.getElementById(cName).options[cIndex].value; //alert(cValue); //sNode.style.background = "#ddd"; sNode.options[1] = new Option("[Loading Options]", "", false, false); sNode[1].selected = true; subName = sName; $('#throbber-'+subName).css('display','inline'); //document.getElementById("rmiCmd").src = "/scripts/cat_options.php?col="+col+"&tid="+tId+"&nid="+cValue; $.get('/scripts/cat_options2.php', { col: col, tid: tId, nid: cValue }, setSub2, 'json'); } // ================================================================ function setSub2(d) { var sub = $('#'+subName); $('#throbber-'+subName).css('display','none'); if(d.result == 'error') return; //sub.css('background-color','#ffffff'); sub.empty(); sub.append('<option value="">Select a Sub-Category</option>'); for(i in d.categories) { var v = d.categories[i].split('|'); sub.append('<option value='+v[0]+'>'+v[1]+'</option>'); } } // ================================================================ function setSub(doc) { var sNode = document.getElementById(subName); var rmiData = doc.getElementById('rmiData').innerHTML; var aItems = rmiData.split("|"); var aVals; sNode.style.background = "#fff"; //var tNode = document.getElementById("id_text"); //tNode.value = rmiData; for (var x = 0; x < (aItems.length -1); x ++) { aVals = aItems[x].split("="); sNode.options[x+1] = new Option(aVals[1],aVals[0],false,false); } sNode.length = x+1; sNode[0].selected = true; } // ================================================================ function start_upload(id) { $('#d-'+id).css('background-color', '#ccc'); $('.throbber').css('display', 'inline'); } // ================================================================ function stop_upload(id, src, desc, alt) { var html = ''; var idx = $('#u-'+id+' div.photo').length; if(src == false) { alert("Error: "+desc); } else { html = '<div class="photo"><div class="operations"><button class="photo-up" onclick="photo_up(this)">Move up</button> <button class="photo-down" onclick="photo_down(this)">Move down</button> <button class="photo-delete" onclick="photo_delete(this)">Delete</button></div><img class="thumbnail" src="'+src+'?filter=ksl/newhl"><div class="title"><span class="title-prefix">Photo:</span> '+alt+'</div><div><span class="title-prefix">Description:</span> <span class="description">'+desc+'</span></div><div><button class="photo-edit" onclick="photo_edit_description(this)">Edit description</button></div></div>'; $('#u-'+id).append(html); } // clear the form $('#d-'+id).css('background-color', 'white'); $('#f-'+id).get(0).reset(); $('.throbber').css('display', 'none'); } // ================================================================ function photo_up(e) { var src = $(e).parent().parent(); var dst = $(src.prev()); if(dst.length == 0) return; var srcidx = src.prevAll().length; var dstidx = srcidx-1; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'move_media', source: 'airlock', aid: '71632824', from: srcidx, to: dstidx }, function (d) { if(d.result != 'success') return; $(src).insertBefore(dst); }, 'json' ); } // ================================================================ function photo_down(e) { var src = $(e).parent().parent(); var dst = $(src.next()); if(dst.length == 0) return; var srcidx = src.prevAll().length; var dstidx = srcidx+1; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'move_media', source: 'airlock', aid: '71632824', from: srcidx, to: dstidx }, function (d) { if(d.result != 'success') return; $(src).insertAfter(dst); }, 'json' ); } // ================================================================ function photo_delete(e) { var src = $(e).parent().parent(); var index = src.prevAll().length; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'delete_media', source: 'airlock', aid: '71632824', index: index }, function (d) { if(d.result != 'success') return; src.remove(); }, 'json' ); } // ================================================================ function photo_edit_description(e) { var src = $(e).parent().parent(); var index = src.prevAll().length; var desc = src.find('.description'); var odesc = desc.text(); var ndesc = prompt('Please enter the description for the photo:', odesc); if(ndesc == null) return; // perform API call $.post('/resources/form/airlock_api.php', { cmd: 'edit_media', source: 'airlock', aid: '71632824', index: index, desc: ndesc }, function (d) { if(d.result != 'success') return; desc.text(ndesc); }, 'json' ); } // ================================================================ function supports_html5_storage() { try { return 'localStorage' in window && window['localStorage'] !== null; } catch (e) { return false; } } // ================================================================ function send_id() { //20110427 - BH //this causes double posting in the classifieds, as it resubmits anything in the airlock a second time. return; var id; if(!supports_html5_storage()) return; id = localStorage.getItem('ddmId'); if(id == null) { id = Math.round(Math.random()*10000000); localStorage.setItem('ddmId', id); } $.post('/resources/form/airlock_api.php', { cmd: 'set_id', source: 'airlock', aid: '71632824', id: id}, function(){}, 'json' ); } // ================================================================ $(document).ready(function(){ send_id(); }); </script> <style type="text/css"> .barBox { clear: left; margin-left: 0px; font-size: 14px; color: #fff; font-weight: normal; text-align: center; border-left: 1px solid #000; border-right: 1px solid #000; height: 21px; width: 620px; } .bar1 { float: left; background: url('/images/barBackRed.gif') no-repeat top right; height: 21px; } .bar2 { float: left; background: url('/images/barFrontRed.gif') no-repeat top right; height: 21px; } .bar3 { float: left; background: url('/images/barBackGrey.gif') no-repeat top right; height: 21px; } .bar4 { float: left; background: url('/images/barBackGrey.gif') no-repeat top left; height: 21px; } .bar5 { float: left; background: url('/images/barFrontRed.gif') no-repeat top left; height: 21px; } .barLabels { clear: left; margin-left: 10px; font-weight: bold; text-align: center; height: 21px; width: 332px; color: #666; padding-top: 5px; font-size: 12px; } .barBottom { float: left; height: 40px; text-align: left; } .barText { position: relative; top: 4px; left: -6px; } .formDivider { clear: left; width: 620px; border-top: 1px solid #ccc; background: #eeeeee; margin-top: 10px; margin-bottom: 15px; height: 20px; font-size: 14px; font-weight: bold; padding: 3px 0px 0px 7px; } .imageBox { float: left; margin-top: 5px; margin-bottom: 5px; margin-right: 10px; } .help { font-size: 10px; } .boxOk { margin-top: 4px; } .boxErr { margin-top: 4px; background: #fbb; border: 1px solid #900; padding: 2px; } .boxStatic { margin-top: 4px; font-weight: bold; font-size: 14px; } .optionBox { margin-top: 3px; margin-bottom: 8px; } .submitBox { clear: both; margin: 5px 0px 0px 2px; } .element { clear: left; width: 585px; margin-bottom: 3px; padding: 0px; } .elementFloat { float: left; margin-right: 10px; margin-bottom: 4px; } .iLabel { float: left; display: block; font-weight: normal; padding: 0px; margin: 4px 0px 0px 5px; text-align: left; font-size: 12px; width: 120px; } .gBox { width: 625px; margin: 0px 0px 15px 0px; padding: 0px; overflow: hidden; } .gTitle { font-size: 18px; font-weight: bold; padding: 5px 0px 5px 0px; width: 620px; border-top: 1px solid #ccc; margin: 0px 0px 12px 0px; } .gBody { padding: 0px 15px 5px 20px; width: 590px; } iframe.uploader { display: none; width: 0; height: 0; } /*iframe.uploader { display: block; width: 400px; height: 300px; }*/ .photos { margin-left: 5px; clear: both; } .operations { float: right; } .operations span { color: blue; } .photos div.photo { min-height: 77px; height: 77px; margin-bottom: 8px; padding-bottom: 9px; padding-top: 2px; border-bottom: dashed #ccc 1px; } .photos input { font-size: 10px; } .photos img { float: left; margin-right: 10px; } .photos .title-prefix { font-weight: bold; } .photos button { background-color: #e6e6e6; border: solid #aaa 1px; font-size: 80%; -moz-border-radius: 3px; -webkit-border-radius: 3px; } .photos button:hover { color: white; background-color: #0073ea; border: solid #0073ea 1px; } .photos button.photo-edit { margin-top: 3px; } .photos .thumbnail { width: 100px; height: 75px; } .throbber { display: none; } #HomeDetails { display: none; } </style> <div style='clear: both;'></div> <div class="gBox"> <div style="float:left; font-size: 14px; font-weight: bold; color: #777; margin: 0px 0px 2px 0px;">KSL Classifieds - Utah's Fastest Growing Classifieds Website</div> <div style="clear:left; font-size: 20px; font-weight: bold; margin: 0px 0px 10px 0px;">Place a FREE Classified Ad</div> <div style=" margin: 0px 0px 10px 0px; "> <div class="barBox"> <div class="bar1" style="width: 137px;"><span class="barText"><span style="font-size: 11px;">Create the Ad</span></span></div> <div class="bar1" style="width: 124px;"><span class="barText"><span style="font-size: 11px;">Contact Info</span></span></div> <div class="bar2" style="width: 124px;"><span class="barText"><span style="font-size: 11px;">Add Photos</span></span></div> <div class="bar3" style="width: 124px;"><span class="barText"><span style="font-size: 11px;">Terms of Use</span></span></div> <div class="bar4" style="width: 111px;"><span class="barText"><span style="font-size: 11px;">Thank You</span></span></div> </div> </div> <div id=""> <div id="" class="gBody"> </div> </div> <div id="PhotoUpload"> <div class="gTitle">Photo Upload</div> <div id="PhotoUpload" class="gBody"> <div class="element"> <p> <b>Note:</b> The first photo will be used as the primary photo and will represent your ad in the listings, so make sure it's the best photo you have. Use the buttons to the right of each image to change the ordering. </p> <br> </div> <div class="element"> <div id="u-142" class="photos"> </div> <form id="f-142" method="post" enctype="multipart/form-data" action="/resources/form/upload.php" onsubmit="start_upload(142)"> <input type="hidden" name="nid" value="640" /> <input type="hidden" name="sid" value="4516794" /> <input type="hidden" name="fid" value="191336" /> <input type="hidden" name="source" value="airlock" /> <input type="hidden" name="aid" value="71632824" /> <label for="142" class="iLabel">File:</label> <input type="hidden" name="MAX_FILE_SIZE" value="10000000" /> <input id="142" name="142" type="file" class="boxOk" /><br/> </div> <div class="element"> <label for="d-142" class="iLabel">Description:</label> <textarea name="d-142" class="boxOk" id="d-142" wrap="soft" style="width: 400px; height: 50px;"></textarea> </div> <div class="element"> <label for="s-142" class="iLabel"></label> <input id="s-142" name="s-142" type="submit" value="Upload file" /> <img class="throbber" src="/graphics/throbber.gif" height="16" width="16"> <br/> <iframe id="i-142" name="i-142" class="uploader" src=""> </iframe> </form> <script type="text/javascript"> //$(document).ready(function () { $('#f-142').submit(function () { $('#f-142').attr('target','i-142'); }); //}); </script> </div> </div> </div> <div id="PhotoTips"> <div class="gTitle">Photo Tips</div> <div id="PhotoTips" class="gBody"> <div class="element"> <div style="padding-bottom: 7px; padding-left: 15px;"> <li>Submitted images must be in JPG or GIF format.</li> <li>Although all submitted images will automatically be resized to <span style="font-weight: bold;">640x480</span> pixels, we recommend resizing your images to these dimensions before you upload them to avoid any potential problems. Click <a href=http://www.ksl.com/?nid=391&sid=651805 target="_new">HERE</a> for instructions on how to do this.</li> <li>If resizing your images, as recommended above, does not help, then try submitting the ad with no images and then add the rest later using the edit function in "My Ads".</li> </div> </div> </div> </div> </div> <form method="post" action="/index.php?nid=640&form_3=16&form_4=467" enctype="multipart/form-data" /> <input type="hidden" name="nid" value="640" /> <input type="hidden" name="sid" value="4516794" /> <input type="hidden" name="fid" value="191336" /> <div class="submitBox"> <input type="submit" value="<< Back Page" name="back" class="submitBox" /> <input type="submit" value="Next Page >>" name="next" class="submitBox" /> </div> </form> <style type="text/css"> .mediaright { float: right; margin-left: 15px; margin-bottom: 3px; width: 202px; } .medialeft { float: left; margin-right: 30px; margin-bottom: 3px; width: 202px; } .sidebarright { float: right; width: 180px; border-bottom: 1px #ccc solid; color: #000; font-size: 12px; margin: 0px 0px 10px 10px; padding: 0px 0px 7px 0px; } .sidebarleft { float: left; width: 180px; border-bottom: 1px #ccc solid; color: #000; font-size: 12px; margin: 0px 10px 10px 0px; padding: 0px 0px 7px 0px; } .sidebarleft ul { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 30px; } .sidebarright ul { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 30px; } .divboxleft { float: left; margin-right: 15px; margin-bottom: 3px; width: 202px; font-size: 12px; padding: 6px; border: solid 1px black; } .divboxright { float: right; margin-left: 15px; margin-bottom: 3px; width: 202px; font-size: 12px; padding: 6px; border: solid 1px black; } .divboxleft ul { margin: 0px 0px 0px 10px; padding: 5px 0px 5px 15px;overflow: auto; } .divboxright ul { margin: 0px 0px 0px 10px; padding: 5px 0px 5px 15px;overflow: auto; } .divboxleft font { font-size: 11px; } .divboxright font { font-size: 11px; } .ksltableleft { float: left; margin-right: 15px; margin-bottom: 10px;margin-top: 5px;font-size: 11px; } .ksltableright { float: right; margin-left: 15px; margin-bottom: 10px;margin-top: 5px;font-size: 11px; } .ksltable { border-collapse:collapse; } .ksltable td, .ksltable th { font-size:11px; border:1px solid black; padding:3px 7px 2px 7px; text-align: center; } .ksltable th { font-size:12px; text-align:center; font-weight: bold;padding-top:5px; padding-bottom:4px; background-color:#0b162f; color:#fff; } span#widgetclose:hover { cursor: pointer; } </style> <!-- ===================[ STORY HEAD : INTRO ]================= --> <div id="storyIntro" > </div> <!-- HERE HERE --> <!-- Google Analytics --> <script> (function(i,s,o,g,r,a,m){ i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-70949446-4', 'auto'); ga('send', 'pageview'); </script> </div> <!-- sid 17555887 = rentler place an ad page --> <div id="bodyCol3"> <div id="video-companion-2"></div> <div class="ad_block"> <div data-cb-ad-id="Default 0"> <div id='div-gpt-ad-1458596221-0' style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; z-index:-1;"></div> </div> <div style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; z-index:-1;"> <div style="font-size: 9px; "> <link rel="stylesheet" href="/packages/jquery-ui/v1.10.2/jquery-ui-1.10.2.custom.min.css" type="text/css" media="screen" title="no title" charset="utf-8"/> <script type="text/javascript" src="//static.ksl.com/packages/jquery-ui/v1.10.2/jquery-ui-1.10.3.custom.min.js"></script> <script type="text/javascript" src="//static.ksl.com/javascript/report_ad_gpt.js"></script> <a href="http://ads.ksl.com/" style="color: #8f94a0; float: left;">Advertise with us</a> <a href="#" onClick="aboutpop(this)" style="color: #8f94a0; float: right;">Report this ad</a> </div> </div> </div> <div style="clear:both; margin: 0px 0px 15px 0px;"></div> <div class="ad_block"> <div data-cb-ad-id="Default 1"> <div id='div-gpt-ad-1458596221-1' style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; z-index:-1;"></div> </div> <div style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; z-index:-1;"> <div style="font-size: 9px; "> <link rel="stylesheet" href="/packages/jquery-ui/v1.10.2/jquery-ui-1.10.2.custom.min.css" type="text/css" media="screen" title="no title" charset="utf-8"/> <a href="http://ads.ksl.com/" style="color: #8f94a0; float: left;">Advertise with us</a> <a href="#" onClick="aboutpop(this)" style="color: #8f94a0; float: right;">Report this ad</a> </div> </div> </div> <div style="clear:both; margin: 0px 0px 15px 0px;"></div> <div class="ad_block"> <div data-cb-ad-id="Default 2"> <div id='div-gpt-ad-1458596221-2' style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; z-index:-1;"></div> </div> <div style="padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; text-align: right; z-index:-1;"> <div style="font-size: 9px; "> <link rel="stylesheet" href="/packages/jquery-ui/v1.10.2/jquery-ui-1.10.2.custom.min.css" type="text/css" media="screen" title="no title" charset="utf-8"/> <a href="http://ads.ksl.com/" style="color: #8f94a0; float: left;">Advertise with us</a> <a href="#" onClick="aboutpop(this)" style="color: #8f94a0; float: right;">Report this ad</a> </div> </div> </div> <div style="clear:both; margin: 0px 0px 15px 0px;"></div> </div> <div class="headlineQueueHeadcol1wide" style="width: 984px;"> Site Index </div> <div class="nocontent"> <table width="984" border="0" class="siteIndex nocontent"> <tr valign="top"> <td width="164"><h2><a href="/index.php?nid=10">News</a></h2> <ul><li> <a href="/index.php?nid=30">Utah</a> <ul><li><a href="/index.php?nid=30">News</a> <li> <a href="/index.php?nid=680"> Education</a> <li> <a href="/index.php?nid=308">KSL Investigates</a> <li> <a href="/index.php?nid=1174">Your Life Your Health</a> <li> <a href="/index.php?nid=694">Staying Safe</a> <li> <a href="/index.php?nid=1196">More on the web</a></ul> </ul> <ul><li> <a href="/index.php?nid=30">Page Two</a> <ul><li><a href="/index.php?nid=999">Family</a> <li> <a href="/index.php?nid=1285">Uplifting</a> <li> <a href="/index.php?nid=1000">Lifestyle</a> <li> <a href="/index.php?nid=1287">Outdoors & Recreation</a> <li> <a href="/index.php?nid=1007">Religion</a> <li> <a href="/index.php?nid=1283">LDS Life</a> <li> <a href="/index.php?nid=599">Politics</a> <li> <a href="/index.php?nid=1002">Science & Tech</a> <li> <a href="/index.php?nid=333"> Odds & Ends</a> <li> <a href="/index.php?nid=1281">Gephardt Gets It!</a> <li> <a href="/index.php?nid=1072">iWitness</a> </ul> </ul> <li> <a href="/index.php?nid=31"> National</a> <li> <a href="/index.php?nid=32"> World</a> <li> <a href="/index.php?nid=116"> Biz/Finance</a> <li> <a href="/index.php?nid=1198">Consumer</a> </uL></td> <td width="164"><h2><a href="/index.php?nid=88">Weather</a></h2> <ul><li> <a href="/index.php?nid=88">Forecasts</a> <li> <a href="/index.php?sid=2289447&nid=525"> Current Conditions</a> <li> <a href="/index.php?nid=175"> VORTEX</a> <li> <a href="/index.php?nid=233"> Microcast</a> <li> <a href="/index.php?sid=&nid=580"> Water Watch</a> <ul><li> <a href="/index.php?nid=149&sid=134181">Snowpack totals</a> <li> <a href="/index.php?nid=581&sid=2658650">Ramp reports</a> <li> <a href="/index.php?nid=149&sid=3321269">Lawn Watering guide</a> <li> <a href="/index.php?nid=149&sid=215478">Flood/Water Flow</a></ul> <li> <a href="/index.php?sid=901157&nid=461"> Photo Galleries</a> <li> <a href="/index.php?sid=106058&nid=149"> Weather Planner</a> <li> <a href="/index.php?nid=340&sid=148077"> Weather Lab</a> <li> <a href="/index.php?nid=366&sid=174427"> Ask the Meteorologist</a> <li> <a href="/index.php?sid=128553&nid=522"> Ski Report</a> <li> <a href="/index.php?nid=656"> Weather on 5.3</a> </ul> <p> <h2><a href="/index.php?nid=710">Traffic</a></h2> <ul><li> <a href="/index.php?nid=710">Traffic Cams</a> </ul> <p> <h2><a href="/index.php?nid=710">Special Features</a></h2> <ul><li> <a href="/index.php?nid=295"> General Conference</a> </ul> </td> <td width="164"> <h2><a href="/index.php?nid=115">Sports</a></h2> <ul> <li> <a href="/index.php?nid=271"> BYU</a> <ul> <li> <a href="/index.php?nid=841&sid=13378103">Coach's Show</a> <li> <a href="/index.php?nid=497">Cougar Tracks</a> <li> <a href="/index.php?nid=868">My Cougar Stories</a> <li> </ul> <li> <a href="/index.php?nid=634">U of U</a> <ul> <li> <a href="/index.php?nid=839">Crimson Corner</a> </ul> <li> <a href="/index.php?nid=859">USU</a> <ul> <li> </ul> <li> <a href="/index.php?nid=637">Jazz/NBA</a> <ul><li> <a href="/index.php?sid=1591910&nid=497">Schedule</a> / <a href="/index.php?sid=1591910&nid=497">Stats</a> / <a href="/index.php?sid=1591910&nid=497">Standings</a> <li> <a href="/index.php?sid=1591910&nid=497">Blog</a> </ul> <li> <a href="/index.php?nid=854">RSL</a> <ul><li> <a href="/index.php?sid=1591910&nid=497">Schedule</a> / <a href="/index.php?sid=1591910&nid=497">Stats</a> / <a href="/index.php?sid=1591910&nid=497">Standings</a> <li> <a href="/index.php?sid=1591910&nid=497">Blog</a> </ul> <li> <a href="/index.php?nid=431">Prep</a> <ul><li> <a href="/index.php?sid=1591910&nid=497">Schedule / Scoreboard</a> / <a href="/index.php?sid=1591910&nid=497">Standings</a> <li> <a href="/index.php?sid=1591910&nid=497">KSL Coaches Poll</a> </ul> <li> <a href="/index.php?nid=140"> NFL</a> <li> <a href="/index.php?nid=377">Golf Utah</a> <li> <a href="/index.php?nid=937">Stats/Scores</a> <li> <a href="http://bleacherreport.com/salt-lake-city-sports">Bleacher Reports</a> </ul> <p> <h2><a href="http://movies.ksl.com"> Movies</a></h2> <ul><li> <a href="http://movies.ksl.com">Movie/Theater Listings</a></uL> </td> <td width="164"> <h2><a href="/index.php?nid=1114">Shows</a></h2> <ul> <li> <a href="http://studio5.ksl.com">Studio 5</a> <li> <a href="/index.php?nid=1113&sid=17217040&title=ksl-outdoors-with-adam-eakle">KSL Outdoors w/ Adam Eakle</a> <li> <a href="http://www.ksl.com/?sid=&nid=315&title=ksl-5-news-today">KSL 5 News Today</a> <li> <a href="/index.php?sid=23994024&nid=1193&title=the-browser-50---weekdays-at-1230-on-ksl-5">The Browser 5.0</a> <li> <a href="/index.php?nid=178">Utah's Morning News</a> <li> <a href="/index.php?nid=399">Doug Wright Show</a> <li> <a href="/index.php?nid=894">The Browser</a> <li> <a href="/index.php?nid=180">Utah's Afternoon News</a> <li> <a href="http://nightside.ksl.com/">Nightside Project</a> <li> <a href="/index.php?nid=399">KSL Movie Show</a> <li> <a href="/index.php?nid=186">KSL Outdoors</a> <li> <a href="/index.php?nid=183">KSL Greenhouse Show</a> <li> <a href="/index.php?nid=305">Matt Townsend Show</a> <li> <a href="/index.php?nid=185">KSL Travel Show</a></ul> <p> <h2><a href="/index.php?nid=13">Classifieds</a></h2> <ul><li> <a href="/index.php?nid=13">General</a> <li> <a href="/homes">Homes</a> <li> <a href="/auto">Cars</a> <li> <a href="http://www.ksl.com/jobs">Utah Jobs</a> <li> <a href="http://www.ksl.com/deals">Deals</a> <li> <a href="http://local.ksl.com/">Local</a> <li> <a href="/index.php?nid=207">Help</a></ul> <p> </td> <td width="164" > <h2><a href="/index.php?nid=15">TV</a></h2> <ul><li> <a href="/index.php?nid=38"> Bios</a> <li> <a href="/index.php?nid=42">Schedule</a> <li> <a href="/index.php?nid=239"> Contests</a> <li> <a href="/index.php?nid=1196"> More on the Web</a> <li> <a href="http://studio5.ksl.com/"> Studio 5</a></ul> <p> <h2><a href="/index.php?nid=16">Radio</a></h2> <ul><li> <a href="/index.php?nid=16"> Listen LIVE</a> <li> <a href="/index.php?nid=209"> Podcasts</a> <li> <a href="/index.php?sid=122030&nid=312"> Lineup</a> <li> <a href="/index.php?nid=317"> Bios</a> <li> <a href="/index.php?nid=311"> Shows</a> <li> <a href="/index.php?nid=318">Features</a> <ul><li> <a href="/index.php?sid=2359958&nid=189">Speaking on Biz</a> <li> <a href="/index.php?nid=191">Teacher Feature</a> <li> <a href="/index.php?sid=29384064&nid=303">Money Matters</a> <li> <a href="/index.php?sid=30155869&nid=256">Utah Gives Back</a></ul> <li> <a href="/index.php?nid=253">Contests</a> <li> <a href="/index.php?nid=318">Events</a></ul> </td> <td width="164" style="background: #eee; padding: 2px 0px 0px 4px;"> <h2><a href="http://ads.ksl.com/">Advertise with KSL</a></h2> <p> <h2>Other Resources</h2> <ul><li> <a href="/index.php?nid=205">Contact Us</a> / <a href="/index.php?nid=277">Phone Numbers</a> <li> <a href="http://ksl.applicantpro.com" target="_blank">Careers with KSL</a> <li> <a href="http://deseretdigital.applicantpro.com">Careers with DDM</a> <li> <a href="/index.php?nid=278">Web Resources</a> <li> <a href="/index.php?sid=5562812&nid=322">Charity Account Form</a> </ul> <p> <h2>Mobile</h2> <ul><li> <a href="http://m.ksl.com">ksl.com mobile</a> <li> <a href="/index.php?sid=17920249&nid=250">KSL mobile apps</a> <li> <a href="http://www.ksl.com/?sid=14578360&nid=971">text alerts</a> </ul> <p> <h2>Legal</h2> <ul><li> <a href="/index.php?sid=95313&nid=250">Terms of Use</a> <li> <a href="/index.php?nid=250&sid=95314">Privacy Statement</a> <li> <a href="/index.php?nid=250&sid=95315">DMCA Notice</a> <li> <a href="http://www.ksl.com/eeo/EEO_Public_File.pdf">EEO Public File Report</a> <li> <a href="https://stations.fcc.gov/station-profile/ksl-tv">FCC Public File</a> <li> <a href="/index.php?sid=10021371&nid=250">Closed Captioning Assistance</a></ul> <p> <h2>Sister Sites</h2> <ul> <li> <a href="http://fm100.com/">FM100</a> / <a href="http://www.1035thearrow.com/">Arrow 103.5</a> <li><a href="http://www.deseretnews.com/home">Deseret News</a> <li><a href="http://www.utah.com">Utah.com</a> <li><a href="http://deseretbook.com/">Deseret Book</a> </ul> <p> </td> </tr> </table> </div> <div style="clear: left; padding: 10px 0px 0px 0px;"></div> </div> <!-- ============== BOTTOM BANNER =============== --> <div id="bannerad" > </div> <!-- ============== BOTTOM NAV============ --> <div style="padding: 4px 0px 10px 0px; font-size: 9px; text-align: center;"> <div style="margin-left: 7px; margin-right: 7px; text-align: center; padding: 2px; margin-bottom: 3px;"> KSL's Children's Television Programming Reports, as well as its FCC public inspection file, are available for viewing during regular office hours at the KSL Broadcast House or <a href="https://stations.fcc.gov/station-profile/ksl-tv">online</a>. <br> The station representative who can assist a person with disabilities with issues related to the content of the public files is Mike Dowdle, available during regular office hours at <a href="mailto:closed_captioning@ksl.com">closed_captioning@ksl.com</a> and (801) 575-5555. </div> <div style="padding: 10px 0px 10px 0px;"> © 2016 ksl.com | KSL Broadcasting Salt Lake City UT | Site hosted & managed by Deseret Digital Media - a Deseret Media Company v13</div> <div style="padding: 0px 0px 0px 0px;"><img name="footer" src="/graphics/ksl11/footer.png" width="537" height="38" border="0" id="footer" usemap="#m_footer" alt="" /><map name="m_footer" id="m_footer"> <area shape="rect" coords="327,0,485,34" href="http://deseretmediacompanies.com/" target="_blank" alt="" /> <area shape="rect" coords="230,4,316,38" href="http://deseretdigital.com/" target="_blank" alt="" /> <area shape="rect" coords="146,5,219,38" href="http://www.ksl.com/index.php?nid=16" alt="" /> <area shape="rect" coords="62,5,133,38" href="http://www.ksl.com/index.php?nid=15" alt="" /> </map> </div> <div style="clear: both; margin: 0px; padding: 0px; height: 5px;"></div> </div> </div> <!-- Crazy Egg Start --> <script type="text/javascript"> setTimeout(function() { var a=document.createElement("script"); var b=document.getElementsByTagName("script")[0]; a.src=document.location.protocol+"//script.crazyegg.com/pages/scripts/0021/2728.js?"+Math.floor(new Date().getTime()/3600000); a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b) }, 1); </script> <!-- Crazy Egg End --> <script type="text/javascript" src="https://scdn.cxense.com/cx.js"></script> <script type="text/javascript"> (function() { var src = '//www.googletagservices.com/tag/js/gpt.js'; document.write('<scr' + 'ipt src="' + src + '" ></scr' + 'ipt>'); })(); (function() { var src = '//ksl-d3.openxenterprise.com/w/1.0/jstag?nc=6686-KSL_Classified'; document.write('<scr' + 'ipt src="' + src + '" ></scr' + 'ipt>'); })(); </script> <script type='text/javascript' > googletag.cmd.push(function() { googletag.defineSlot('/6686/ddm.ksl/Classifieds//PlaceaFREEAd', [[300, 250], [300, 600]], 'div-gpt-ad-1458596221-0').addService(googletag.pubads()).setTargeting('pos', 'right').setTargeting('tile', '1'); googletag.defineSlot('/6686/ddm.ksl/Classifieds//PlaceaFREEAd', [[300, 250], [300, 600]], 'div-gpt-ad-1458596221-1').addService(googletag.pubads()).setTargeting('pos', 'right2').setTargeting('tile', '2'); googletag.defineSlot('/6686/ddm.ksl/Classifieds//PlaceaFREEAd', [[300, 250], [300, 600]], 'div-gpt-ad-1458596221-2').addService(googletag.pubads()).setTargeting('pos', 'right3').setTargeting('tile', '3'); googletag.pubads().setTargeting('v','classifieds'); googletag.pubads().setTargeting('cpostcat','16'); googletag.pubads().setTargeting('cpostsub','467'); googletag.pubads().setTargeting('cc','placeafreead'); googletag.pubads().setTargeting('article-id','4516794'); googletag.pubads().setTargeting('gclcat','16'); googletag.pubads().setTargeting('gclsubcat','467'); googletag.pubads().setTargeting('CxSegments', cX.getUserSegmentIds({persistedQueryId:'50a2829a9f34688dedf9ec64d1241d426da983d2'})); //googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.enableServices(); if (Math.random() >= 0.95) { googletag.pubads().addEventListener('slotRenderEnded', function(event){ $.post('/api/adunit.php', { u: event.slot.getAdUnitPath(), s: event.size[0]+'x'+event.size[1], l: event.lineItemId, e: event.isEmpty }); //console.log('rendered slot:'+event.slot.getAdUnitPath()+' sizes:'+event.size[0]+'x'+event.size[1]+' line item:'+event.lineItemId); }); } setTimeout(function(){ renderAds(); }, 250); }); </script> <script type='text/javascript'> function renderAds() { //alert('rendering'); googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458596221-0'); }); googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458596221-1'); }); googletag.cmd.push(function() { googletag.display('div-gpt-ad-1458596221-2'); }); } </script> <script language="javascript"> //document.getElementById("bodyCol3").innerHTML = ""; </script> <!-- ============== BOTTOM BANNER =============== --> <iframe name="rmiCmd" id="rmiCmd" src="/images/dot1.gif" height="1" width="1" style="visibility:hidden;"></iframe> <iframe name="onDemandback" id="onDemandback" src="" style="visibility:hidden; height: 0px;"></iframe> <!-- old omniture location --> </div> <div id="sitepopup" style="display: none;"></div> <div id="sitewindow" rel="lightbox" style="display: none;"></div> <script type="text/javascript"> var xdbt_end = (new Date()).getTime(); var xdbt_time = (xdbt_end-xdbt_start)/1000; $('#xdbt-time').text(xdbt_time); $('#xdbt-memory').text("3167 KB"); //if(Math.random()*100 < 5) // $.post('/logic/stats/latency.php', { latency: xdbt_time, server: '' }, function(){}, 'json'); </script> <!--PubMatic Universal Pixel tag (Javascript) http://www.ksl.com--> <script type='text/javascript'> var pubId=27332; var pixId=39; </script> <script src='http://ads.pubmatic.com/AdServer/js/universalpixel.js' type='text/javascript'> </script> <!-- Quantcast Tag --> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement("script"); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName("script")[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push({ qacct:"p-KUMT4fYgcdEeg", labels:"ddmnetwork.marketplace.ksl.classifieds" }); </script> <noscript> <div style="display:none;"> <img src="//pixel.quantserve.com/pixel/p-KUMT4fYgcdEeg.gif?labels=ddmnetwork.marketplace.ksl.classifieds" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> <!-- cXense script begin --> <div id="cX-root" style="display:none"></div> <script type="text/javascript"> var cX = cX || {}; cX.callQueue = cX.callQueue || []; cX.callQueue.push(['setAccountId', '9222289450909507122']); cX.callQueue.push(['setSiteId', '9222289450909507123']); cX.callQueue.push(['sendPageViewEvent']); </script> <script type="text/javascript"> (function() { try { var scriptEl = document.createElement('script'); scriptEl.type = 'text/javascript'; scriptEl.async = 'async'; scriptEl.src = ('https:' == document.location.protocol) ? 'https://scdn.cxense.com/cx.js' : 'http://cdn.cxense.com/cx.js'; var targetEl = document.getElementsByTagName('script')[0]; targetEl.parentNode.insertBefore(scriptEl, targetEl); } catch (e) {};} ()); </script> <!-- cXense script end --> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "16033947" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="http://b.scorecardresearch.com/p?c1=2&c2=16033947&cv=2.0&cj=1" /> </noscript> <!-- End comScore Tag --> </body> </html>
-
Hi, is there anyone who can help me figure something out. I am creating a tool that checks the systemspecs and write this down in a text file. I got everything down, specs, internet download test, ISP information. Only thing that i am not getting done is the upload test. Hope you guys can help me. check-forum.au3 NetInfo.au3 SMTPAUTH.au3 NavInfo.au3 date.cmd
-
-
I'm trying to use Sendspace API for download and upload, until now i only have learned to get token, login and get session key. My next step is upload a file. But i have no idea how to do this part. ; try to upload something ; Specify the reguest to upload.getInfo: Local $hRequest = _WinHttpOpenRequest($hConnect, Default, "/rest/?method=upload.getinfo&session_key=" & $SessonKey & "&speed_limit=0") ; Send request Local $handle = _WinHttpSendRequest($hRequest) ; Wait for the response Local $WaitRS = _WinHttpReceiveResponse($hRequest) ; Read Data Local $sData = _WinHttpReadData($hRequest) MsgBox(0, "Upload Data", $sData) _filewrite($sData) ; Get all info needed from $sData $URL = _StringBetween($sData, "<upload url=", "progress") $sURL = $URL[0] $MaxFileSize = _StringBetween($sData, "max_file_size=", "progress") $sMaxFileSize = $MaxFileSize[0] $Upload_Identifier = _StringBetween($sData, "upload_identifier=", "&") $sUpload_Identifier = $Upload_Identifier[0] $ExtraInfo = _StringBetween($sData, "extra_info=", "/>") $sExtraInfo = $ExtraInfo[0] ;All well done until here ;Fill in form $XML = '<form method="post" action="' & $sURL & 'enctype="multipart/form-data">' & @CRLF $XML &= '<input type="hidden" name="MAX_FILE_SIZE" value=' & $sMaxFileSize & '>' & @CRLF $XML &= '<input type="hidden" name="UPLOAD_IDENTIFIER" value=' & $sUpload_Identifier & '>' & @CRLF $XML &= '<input type="hidden" name="extra_info" value=' & $sExtraInfo & '>' & @CRLF $XML &= '<input type="file" name=' & "C:\Users\Arlen\Desktop\premisa mrotal.txt" & '>' & @CRLF $XML &= '</form>' MsgBox(0,"", $XML) ; Now how do i send it? Is it correct? _WinHttpCloseHandle($hRequest) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen) sendspace_api_guide.pdf
-
Version 1.0.0
142 downloads
This is an AutoIt UDF to help you upload images using Imgur API. Simple example: #NoTrayIcon #include 'Imgur.au3' Global $fp = FileOpenDialog('Open', @ScriptDir, 'Images (*.jpg;*.gif;*.png;*.bmp)', 1) If Not @error Then Local $image_url = _imgur_upload($fp) If @error Then MsgBox(16 + 262144, 'Error', 'Upload image failed!') Else ; Open with default browser ShellExecute($image_url) EndIf EndIfGithub: https://github.com/J2TeaM/AutoIt-Imgur-UDF -
Hi, anyone got some experience with the _NetInfo_GetUploadSpeed() from the NetInfo UDF. Been fiddeling with it for a day now. and i keep getting a return: 1 or return 2, never get my upload in kb/s. This is the little bit of my script i got: $s_CountryCode = "NL" $Upload_Speed = _NetInfo_GetUploadSpeed() MsgBox(4096, "Test", $Upload_Speed)What am I not seeing here...
-
TinyPicSharer : A simple and handy tool for capture window or picture by mouse grab and an uploader for 10 Pic Hosters ! You can also Resize, Convert, Optimize, add WaterMark to your images easily. (optimization with jpegtran.exe, optipng.exe, gifsicle.exe command line tools) In plus it can extract images from Docs (pdf, doc, docx, odt, odp, ppt, pptx, pps, ppsx) (Doc extraction with b2xtranslator and pdfextract.exe command line tools) Just Drag'n drop a picture/doc on the Host Logo for load it. I have replaced Curl by WinHttp functions and TrIDLib.DLL by my own FileGetType function. Previous downloads : 1343 Update of 8 June 2013 source and executable are available in the Download Section See Tray menu for options. Double click on his tray icon for restore the gui. >zlib.au3, WinHttp.au3, >WinAPIEx UDF are needed. ( Thanks to Ward, trancexx, Yashield ) Hope you 'll find it usefull !
-
TinyFreeUploader Upload any files to http://dl.free.fr up to 10 Gb per file easily by drag and drop ! A download link is return after upload. A log file save all your upload names and links. Files are temporarly copied in @TempDir ( and renamed if spaces or unsupported characters ) for be uploaded by curl. External fles are now embeded in script. Previous downloads : 598 Source : TinyFreeUploader v 1.0.1.0.au3.html executable : TinyFreeUploader.exe.html (Once this html file downloaded, double click on it for start the download) Hope you like it !
-
$oForm=_IEFormGetObjByName($oIE, "uploadfile") $oInputFile=_IEFormElementGetObjByName($oForm, "photo_upload") _IEAction($oInputFile, "click") WinWait("Choose File to Upload") $hChoose = WinGetHandle("Choose File to Upload") ControlSetText($hChoose, "", "Edit1", "C:\AUTOEXEC.BAT") ControlClick($hChoose, "", "Button2") The internet explorer "choose file to upload" pops up but after that the functions don't set the text nor do they click the button. Could somebody take a look and tell me if I'm missing something?