On-line: Andrey, SergKis, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 253
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 16.03.21 21:55. Заголовок: Облачные сервисы (WebDAV, CalDAV &Co)


После некоторого разбирательства с прогой удалось организовать импорт из ICAL-файлов и экспорт в оные. Но тут шеф захотел, чтобы был прямой контакт с CalDav через интернет. Я знаю, что на питоне такое возможно. На дельфине и даже Xojo (RealBasic) тоже - через спецбиблиотеку. Но как реализовать подключение к облачному сервису в Harbour/Minigui?

Возможно ли это вообще?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 174 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]


постоянный участник


Пост N: 1671
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.05.21 12:01. Заголовок: colorize.prg #inc..


colorize.prg
Скрытый текст



ics.ch
Скрытый текст



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 298
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 03.05.21 19:28. Заголовок: Огромное спасибо! Об..


Огромное спасибо! Обязательно попробую интегрировать в свою прогу! И с прошедшими праздниками!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1672
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.05.21 20:42. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Огромное спасибо! Обязательно попробую интегрировать в свою прогу! И с прошедшими праздниками!


Был рад вам помочь. Если возникнут вопросы - обращайтесь.
Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 299
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 08.05.21 11:25. Заголовок: Петр пишет: #Libs ..


Петр пишет:

 цитата:
#Libs
-lhbmxml
-lmxml
-lics
-lhbwin


И сразу вопрос: где можно достать библиотеку ics.lib? У меня в директории C:\MINIGUI\HARBOUR\LIB есть hbmxml, mxml, hbwin. А вот ics.lib нет.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1674
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.05.21 22:26. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
И сразу вопрос: где можно достать библиотеку ics.lib?


ics.lib это библиотека из одной функции parse, написана на C.

// This code is based on J Decker original code posted at
// https://stackoverflow.com/questions/35003036/toolset-to-parse-icalendar-file-in-c

Ну и плюс функция-обертка IcsToArray для использования с Harbour.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1675
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.05.21 22:38. Заголовок: IcsToArray2 обладает..


IcsToArray2 обладает тем же функционалом, написана на Harbour.

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1676
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.05.21 22:47. Заголовок: Пример использования..


Пример использования

Скрытый текст



P.S. Код в посте №1669 исправил для использования IcsToArray2

Также добавлена функция извлечения кода возврата и его описания sf_GetHTTPStatusCode .

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 300
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.05.21 12:49. Заголовок: Спасибо за функцию. ..


Спасибо за функцию. Только теперь вопрос: как передать имя файла в процедуру Import2Cal (бывшая Main), чтобы не выдавало такого вот сбоя.

Error BASE/1081 Argument error: + Args: [1] = U [2] = C /


У меня cFile:=cTempDIR+'\Test.ics', где cTempDIR - директория временных файлов, прописанная в INI

PS: Поздравляю с днём Победы

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1677
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.05.21 13:30. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
PS: Поздравляю с днём Победы


Спасибо. И Вас и всех остальных форумчан с Праздником!


 цитата:
Только теперь вопрос: как передать имя файла в процедуру Import2Cal


Не совсем понял вопрос

Import2Cal( cFile ).
И зачем вам директория временных файлов.

Error BASE/1081 Argument error: + Args: [1] = U [2] = C /
cFile:=cTempDIR+'\Test.ics'

TYPE( cTempDIR ) == "U" (Args: [1] = U) и складывать его с '\Test.ics' ([2] = C) нельзя

Лучше так
cFile:=hb_defaultValue(hb_DirSepAdd(cTempDIR), hb_DirTemp())+'Test.ics'

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 301
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.05.21 14:03. Заголовок: Петр пишет: Import2..


Петр пишет:

 цитата:
Import2Cal( cFile ). И зачем вам директория временных файлов.


А куда ещё временные ics-ы девать?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1678
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.05.21 14:18. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
А куда ещё временные ics-ы девать?


Ну вам виднее. Я обхожусь обычной субдиректорией в директории программы. И файлы там не временные, а копии файлов на сервере, как и рекомендуют разработчики.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 302
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.05.21 15:49. Заголовок: Error BASE 1081 уже ..


Error BASE 1081 уже убрал. Но теперь curl ругается на опцию --no-progress-meter

curl: option --no-progress-meter: is unknown 
curl: try 'curl --help' for more information


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7341
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.05.21 15:56. Заголовок: Dr. Oldwarez Может ..


Dr. Oldwarez
Может CURL древний
 
Fixed in 7.67.0 - November 6 2019

Changes:

curl: added --no-progress-meter


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 303
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.05.21 16:55. Заголовок: Dima пишет: Dr. Old..


Dima пишет:

 цитата:
Dr. Oldwarez
Может CURL древний

Fixed in 7.67.0 - November 6 2019

Changes:

curl: added --no-progress-meter



Да, древний. И не обновляется, несмотря на прямую замену. Лучше давайте уберём эту опцию

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 304
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.05.21 17:28. Заголовок: Петр пишет: IcsToAr..


Петр пишет:

 цитата:
IcsToArray2 обладает тем же функционалом, написана на Harbour.


Пока решил прочесать программу и обнаружил, что эта функция не работает. Выдаёт пустой массив

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1679
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.05.21 17:46. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Выдаёт пустой массив


Да, если строка на входе не валидная.
Можно и в ошибку времени исполнения свалиться, но так лучше.

И в дальнейшем приводите самодостаточные примеры или хотя бы часть своего кода,
чтобы был какой-то предмет для разговора.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 305
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 09.05.21 21:07. Заголовок: Бывший main FUNCTION..


Бывший main
FUNCTION Import2Cal() 
LOCAL cStr
LOCAL cCmdLn := 'curl.exe -u "%1$s:%2$s" %3$s -T "%4$s" -X %5$s %6$s%7$s'
LOCAL cOpt:='',aICS
LOCAL aEvent,w:=0, cUid
LOCAL cFile:=hb_defaultValue(cTempLW,"")+'\Termin.ics'
LOCAL cStdOut, cStdErr
cStr:=hb_MemoRead( cFile )
aICS:=IcsToArray2(cStr,@w )
aEvent := sf_GetEvent( IcsToArray2(cStr,@w ) )
MsgInfo(STR(LEN(aICS)))
cUid := sf_GetUID( aEvent )
cStr := RTrim( cUid ) + '.ics'
cUid += ".ics"
cOpt := '--insecure --no-progress-meter '
cOpt += '--http1.1 '
cOpt += '--header "Content-Type: text/calendar; charset=utf-8" '
cOpt += '--dump-header _header.log '


cCmdLn:=hb_StrFormat(cCmdLn, cCalLogin, cCalPwd, cOpt, cFile, "PUT", cCalName, cUid )
//MsgInfo(cCmdLn)
hb_ProcessRun( cCmdLn,,@cStdOut,@cStdErr)

IF ! Empty( cStdErr )
hb_MemoWrit( hb_DirBase() + "_err.log", cStdErr )
ENDIF

IF ! Empty( cStdOut )
hb_MemoWrit( hb_DirBase() + "_out.xml", cStdOut )
ENDIF
RETURN NIL


 
STATIC FUNCTION sf_GetEvent(aSource)
LOCAL nStart, nEnd, nLen, e1, e2

hb_default(@aSource, {})

IF .NOT. Empty( aSource )
nStart := nEnd := 0
FOR EACH e1 IN aSource DESCEND
IF e1[ICS_PARAMETER] = "BEGIN"
FOR EACH e2 IN e1[ICS_VALUE] DESCEND
IF hb_LeftEq(e2, "VEVENT")
nStart := e1:__enumIndex()
EXIT
ENDIF
NEXT
ELSEIF e1[ICS_PARAMETER] = "END"
FOR EACH e2 IN e1[ICS_VALUE] DESCEND
IF hb_LeftEq(e2, "VEVENT")
nEnd := e1:__enumIndex()
EXIT
ENDIF
NEXT
ENDIF
IF nEnd > 0
EXIT
ENDIF
NEXT

IF nStart != 0 .AND. nStart > nEnd
nLen := nStart - nEnd + 1
RETURN ACopy(aSource, Array(nLen), nEnd, nLen)
ENDIF
ENDIF

RETURN {}

Я проверил, что пустой массив aEvent выдаёт именно sf_getevent. aICS длиной в 12 элементов, как и положено

ICS_PARAMETER ICS_VALUE - они не из "ICS.CH"? И где его взять?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7342
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.05.21 21:13. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
И не обновляется, несмотря на прямую замену


Так не бывает..........ну если корректно заменил конечно :)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1680
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.05.21 21:22. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Я проверил, что пустой массив aEvent выдаёт именно sf_getevent. aICS длиной в 12 элементов, как и положено



У вас sf_getevent для использования с IcsToArray
Для IcsToArray2 sf_GetEvent() код нужно модифицировать

Читайте внимательно
Код в посте №1669 исправил для использования IcsToArray2

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1681
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.05.21 21:29. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
ICS_PARAMETER ICS_VALUE - они не из "ICS.CH"? И где его взять?



ICS_PARAMETER см. мой пост №1675

если коротко

 цитата:

 
#include "ics.ch"

#define ICS_PARAMETER ICS_PARAM
#define ICS_PROPERTY ICS_PROPS
#define ICS_VALUE ICS_VALS




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 174 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 144
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет