Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <StringConstants.au3>
- $AppProject = 'ownCloud'
- $AppName = 'CardDAV'
- OnAutoItExitRegister("_Terminate")
- TCPStartup ()
- If @error Then Exit MsgBox(0, $AppProject&'.'&$AppName, "TCPStartup Error: "&@error)
- $strUser = 'MyUserName'
- $strPass = 'MyPasswdString'
- $strServer = '192.168.xxx.xxx'
- $strPort = '80'
- $ETag = _SendCardDAV_VCARD ( $strUser, $strServer, $strPort, _
- 'Daboo', _ ; LastName
- 'Cyrus', _ ; Firstname
- '2822 Email HQ', _ ; Adr
- 'Suite 2821', _ ; Appartm
- 'RFCVille', _ ; City
- 'PA', _ ; Region
- '15213', _ ; PostalCode
- 'USA', _ ; County
- 'cyrus@example.com', _ ; Email
- 'me', _ ; Nick
- 'Example VCard', _ ; Note
- 'Self Employed', _ ; Org
- '412 605 0499', _ ; WorkTel
- '412 605 0705', _ ; Fax
- 'http://www.example.com', _ ; URL
- '1234-5678-9000-1') ; UID
- MsgBox (0, $AppProject&'.'&$AppName, '$ETag = ' & $ETag & @CRLF & '@error = ' & @error & @CRLF & '@extended = ' & @extended)
- Func _SendCardDAV_VCARD ($User, $Server, $Port, $LastName, $Firstname='', $Adr='', $Appartm='', $City='', $Region='', $PostalCode='', $County='', $Email='', $Nick='', $Note='', $Org='', $WorkTel='', $Fax='', $URL='', $UID='')
- Local $tPacket = '', $Content = '', $intErr
- $tPacket = 'PUT ' & 'http://' & $Server & '/remote.php/dav/addressbooks/users/' & $User & '/contacts/' & ' HTTP/1.1' & @CRLF
- $tPacket &= 'If-None-Match: *' & @CRLF
- $tPacket &= 'Host: '& $Server & @CRLF
- $tPacket &= 'Content-Type: text/vcard' & @CRLF
- $tPacket &= 'Content-Length: '
- $Content &= 'BEGIN:VCARD' & @CRLF
- $Content &= 'VERSION:3.0' & @CRLF
- If $Firstname <> '' Then
- $Content &= 'FN:' & $Firstname &' '& $LastName & @CRLF
- Else
- $Content &= 'FN:' & $LastName & @CRLF
- EndIf
- If $Firstname <> '' Then
- $Content &= 'N:' & $LastName &';'& $Firstname & @CRLF
- Else
- $Content &= 'N:' & $LastName & @CRLF
- EndIf
- If ($Adr <> '') Or ($Appartm <> '') Or ($City <> '') Or ($Region <> '') Or ($PostalCode <> '') Or ($County <> '') _
- Then $Content &= 'ADR;TYPE=POSTAL:;'&$Adr&';'&$Appartm&';'&$City&';'&$Region&';'&$PostalCode&';'&$County & @CRLF
- If $Email <> '' Then $Content &= 'EMAIL;TYPE=INTERNET,PREF:' & $Email & @CRLF
- If $Nick <> '' Then $Content &= 'NICKNAME:' & $Nick & @CRLF
- If $Note <> '' Then $Content &= 'NOTE:' & $Note & @CRLF
- If $Org <> '' Then $Content &= 'ORG:' & $Org & @CRLF
- If $WorkTel <> '' Then $Content &= 'TEL;TYPE=WORK,VOICE:' & $WorkTel & @CRLF
- If $Fax <> '' Then $Content &= 'TEL;TYPE=FAX:' & $Fax & @CRLF
- If $URL <> '' Then $Content &= 'URL:' & $URL & @CRLF
- If $UID <> '' Then $Content &= 'UID:' & $UID & @CRLF
- $Content &= 'END:VCARD'
- $tPacket &= StringLen ($Content) & @CRLF & @CRLF & $Content
- ConsoleWrite ($tPacket & @CRLF& @CRLF)
- $tSocket = TCPConnect ($Server, $Port)
- If (@error <> 0) Then Return SetError (1, @error, 0)
- ConsoleWrite ('Connected to Server ' & $Server &':'& $Port & @CRLF)
- $SentBytes = TCPSend ($tSocket,StringToBinary($tPacket))
- If (@error <> 0) Then Return SetError (2, @error, 0)
- ConsoleWrite ('Packet was sent: ' & $SentBytes &' Bytes' & @CRLF)
- Do
- $RecvBytes = TCPRecv ($tSocket,2048)
- Until $RecvBytes <> ""
- ConsoleWrite (@CRLF& 'Data Received: '& @CRLF & $RecvBytes & @CRLF)
- $intErr = @error
- Local $aArray = StringRegExp($RecvBytes, '(?i)ETag: "(.*?)"', $STR_REGEXPARRAYGLOBALMATCH)
- If IsArray ($aArray) Then Return SetError (0, 0, $aArray[0])
- Return SetError (4, $intErr, 0)
- EndFunc ;==>_SendCardDAV_VCARD
- Func _Terminate()
- TCPShutdown()
- EndFunc ;==>_Terminate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement