Advertisement
Guest User

CardDAV Send Contact

a guest
Jan 18th, 2018
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.51 KB | None | 0 0
  1. #include <StringConstants.au3>
  2.  
  3. $AppProject = 'ownCloud'
  4. $AppName = 'CardDAV'
  5.  
  6. OnAutoItExitRegister("_Terminate")
  7. TCPStartup ()
  8. If @error Then Exit MsgBox(0, $AppProject&'.'&$AppName, "TCPStartup Error: "&@error)
  9.  
  10. $strUser = 'MyUserName'
  11. $strPass = 'MyPasswdString'
  12. $strServer = '192.168.xxx.xxx'
  13. $strPort = '80'
  14.  
  15. $ETag = _SendCardDAV_VCARD ( $strUser, $strServer, $strPort, _
  16.     'Daboo', _                      ; LastName
  17.     'Cyrus', _                      ; Firstname
  18.     '2822 Email HQ', _              ; Adr
  19.     'Suite 2821', _                 ; Appartm
  20.     'RFCVille', _                   ; City
  21.     'PA', _                         ; Region
  22.     '15213', _                      ; PostalCode
  23.     'USA', _                        ; County
  24.     'cyrus@example.com', _          ; Email
  25.     'me', _                         ; Nick
  26.     'Example VCard', _              ; Note
  27.     'Self Employed', _              ; Org
  28.     '412 605 0499', _               ; WorkTel
  29.     '412 605 0705', _               ; Fax
  30.     'http://www.example.com', _     ; URL
  31.     '1234-5678-9000-1')             ; UID
  32.  
  33. MsgBox (0, $AppProject&'.'&$AppName, '$ETag = ' & $ETag & @CRLF & '@error = ' & @error & @CRLF & '@extended = ' & @extended)
  34.  
  35.  
  36.  
  37. Func _SendCardDAV_VCARD ($User, $Server, $Port, $LastName, $Firstname='', $Adr='', $Appartm='', $City='', $Region='', $PostalCode='', $County='', $Email='', $Nick='', $Note='', $Org='', $WorkTel='', $Fax='', $URL='', $UID='')
  38.  
  39.     Local $tPacket = '', $Content = '', $intErr
  40.     $tPacket = 'PUT ' & 'http://' & $Server & '/remote.php/dav/addressbooks/users/' & $User & '/contacts/' & ' HTTP/1.1' & @CRLF
  41.     $tPacket &= 'If-None-Match: *' & @CRLF
  42.     $tPacket &= 'Host: '& $Server & @CRLF
  43.     $tPacket &= 'Content-Type: text/vcard' & @CRLF
  44.     $tPacket &= 'Content-Length: '
  45.     $Content &= 'BEGIN:VCARD' & @CRLF
  46.     $Content &= 'VERSION:3.0' & @CRLF
  47.     If $Firstname <> '' Then
  48.         $Content &= 'FN:' & $Firstname &' '& $LastName & @CRLF
  49.     Else
  50.         $Content &= 'FN:' & $LastName & @CRLF
  51.     EndIf
  52.     If $Firstname <> '' Then
  53.         $Content &= 'N:' & $LastName &';'& $Firstname & @CRLF
  54.     Else
  55.         $Content &= 'N:' & $LastName & @CRLF
  56.     EndIf
  57.     If ($Adr <> '') Or ($Appartm <> '') Or ($City <> '') Or ($Region <> '') Or ($PostalCode <> '') Or ($County <> '') _
  58.     Then $Content &= 'ADR;TYPE=POSTAL:;'&$Adr&';'&$Appartm&';'&$City&';'&$Region&';'&$PostalCode&';'&$County & @CRLF
  59.     If $Email <> '' Then $Content &= 'EMAIL;TYPE=INTERNET,PREF:' & $Email & @CRLF
  60.     If $Nick <> '' Then $Content &= 'NICKNAME:' & $Nick & @CRLF
  61.     If $Note <> '' Then $Content &= 'NOTE:' & $Note & @CRLF
  62.     If $Org <> '' Then $Content &= 'ORG:' & $Org & @CRLF
  63.     If $WorkTel <> '' Then $Content &= 'TEL;TYPE=WORK,VOICE:' & $WorkTel & @CRLF
  64.     If $Fax <> '' Then $Content &= 'TEL;TYPE=FAX:' & $Fax & @CRLF
  65.     If $URL <> '' Then $Content &= 'URL:' & $URL & @CRLF
  66.     If $UID <> '' Then $Content &= 'UID:' & $UID & @CRLF
  67.     $Content &= 'END:VCARD'
  68.     $tPacket &= StringLen ($Content) & @CRLF & @CRLF & $Content
  69.     ConsoleWrite ($tPacket & @CRLF& @CRLF)
  70.     $tSocket = TCPConnect ($Server, $Port)
  71.     If (@error <> 0) Then Return SetError (1, @error, 0)
  72.     ConsoleWrite ('Connected to Server ' & $Server &':'& $Port & @CRLF)
  73.     $SentBytes = TCPSend ($tSocket,StringToBinary($tPacket))
  74.     If (@error <> 0) Then Return SetError (2, @error, 0)
  75.     ConsoleWrite ('Packet was sent: ' & $SentBytes &' Bytes' & @CRLF)
  76.     Do
  77.         $RecvBytes = TCPRecv ($tSocket,2048)
  78.     Until $RecvBytes <> ""
  79.     ConsoleWrite (@CRLF& 'Data Received: '& @CRLF & $RecvBytes & @CRLF)
  80.     $intErr = @error
  81.     Local $aArray = StringRegExp($RecvBytes, '(?i)ETag: "(.*?)"', $STR_REGEXPARRAYGLOBALMATCH)
  82.     If IsArray ($aArray) Then Return SetError (0, 0, $aArray[0])
  83.     Return SetError (4, $intErr, 0)
  84.  
  85. EndFunc   ;==>_SendCardDAV_VCARD
  86.  
  87.  
  88. Func _Terminate()
  89.     TCPShutdown()
  90. EndFunc   ;==>_Terminate
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement