Skocz do zawartości


Zdjęcie

Przebudowanie/rozszerzenie API dla wtyczek

wtyczki plugins api sdk

  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2015.08.02, 21:57

Zacznę od tego, że ostatnio miałem okazję przeglądać kod wielu komunikatorów, które są cenione na wśród użytkowników na całym świecie. Mam na myśli  m. in. Pidgina, Kopete, Miranda, itp. Komunikatory te posiadają wtyczki do obsługi wielu sieci komunikacyjnych i ciągle powstają nowe. Czemu zatem do AQQ takowe nie powstają (i pewnie nie powstaną)? Powód jest prosty: SDK dla wtyczek. Niby pozwala na stworzenie wtyczki do obsługi jakiegoś protokołu, ale jest to dość niewygodne. Brakuje podstawowych rzeczy, żadnego systemu zarządzania kontami dla danego protokołu, przez co jeżeli ktoś chce posiadać więcej niż jedno konto GG w AQQ to musi sklonować plik dll wtyczki. Czy to jakiś żart? Oconnel proszę pokaż mi inny komunikator w którym użytkownik musi się zajmować takimi rzeczami. Za pomocą aktualnego SDK niby da się robić wtyczki, ale drogi Oconnelu popatrz jakie SDK udostępniają inne komunikatory i na ich bazę wtyczek sieciowych.

 

Tak więc powinieneś zmienić formę SDK, w przeciwnym razie raczej wątpię, że ktoś będzie pisał od nowa rzeczy, które powinny być udostępniane w standardzie przez komunikator i AQQ na zawsze pozostanie z obsługą kilku sieci komunikacyjnych.

 

Masz tu kilka przykładów SDK:

https://github.com/KittyIM/SDK

https://github.com/m.../master/include

https://www.pidgin.im/download/source/

- sprawdź też SDK innego polskiego komunikatora, którego nazwy nie podam bo cenzura :P

 

Spoiler

 


  • kr2ysiek i Deadmaster lubią to

#2 Oconnel

Oconnel

    AQQ Developer

  • Właściciel
  • 4622 postów

Napisano 2015.08.06, 20:02

Nie trzeba nic kolonować. To zależy jedynie od budowy wtyczki i czy coś takiego wspiera lub nie. Akurat wtyczka GG tego nie wspiera ale to nie znaczy, że nie ma takiej możliwości. SDK na to pozwala oczywiście.


  • Beherit lubi to
MyPortalYouTubeTwitter54slty.png

#3 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2015.08.06, 20:11

Ja wiem, że na to pozwala. Ale wtyczka musi się wszystkim sama zająć. W innych komunikatorach jest to uproszczone.


  • Deadmaster i ss9227 lubią to

#4 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2016.03.16, 22:46

SDK nie pozwala na prawidłową obsługę wielu kont, tzn. obsługę przycisków zmiany statusów. I Ty drogi Oconnelu dobrze wiesz czego potrzeba, ale jeszcze raz Ci przypomnę:

a) Funkcje serwisowe w jednym z parametrów powinny dostawać nazwę serwisu które je wywołał (oczywiście powiedziałeś, że się nie da xD). 

b) Dodanie jakiejś notyfikacji, która jest wywoływana po wywołaniu dowolnego serwisu i w jednym z jej parametrów przekazywanie nazwy serwisu.

c) Ewentualnie zmodyfikować funkcję tworzącą serwis i dodać do niej opcjonalny parametr, w którym można przekazaćć jakieś dane, które będą potem przekazane w funkcji serwisowej.

 

P.S. Jak ktoś chce to może mi pomóc w rozwijaniu "porządnego" SDK dla AQQ tutaj.


Użytkownik Sauler edytował ten post 2016.03.17, 11:02


#5 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5031 postów

Napisano 2016.03.17, 18:27

Z jednej strony Oconnel ma rację, że SDK pozwala na wszystkie rzeczy i wszystko zależy od tego w jaki sposób jest skonstruowana wtyczka. Z drugiej strony faktycznie, w niektórych miejscach widać braki w SDK, których obejść się nie da.

Przykładem jest tutaj sprawa serwisów, którą już kiedyś poruszałem i nic z tego nie wyszło... Najbardziej brakuje przekazywanie samej durnej nazwy serwisu w hooku, przez to trzeba tworzyć dziesiątki procek na tę samą rzecz, gdzie różnią się chociażby durną wartością INT określającą kolejność klikniętego elementu. To jest takie durne, że masakra - pamiętam jak klnąłem na to, przez to chociażby we wtyczce TabKit musiałem ograniczyć listę ostatnio zamkniętych zakładek do określonej ilości, bo n-procek nie da rady obsłużyć.

#6 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2016.03.17, 18:36

No właśnie funkcje serwisowe są czymś co ogranicza możliwości wtyczki i nie da się tego obejść, nieważne jak skonstruowana jest wtyczka.

Ale oczywiście przekazywanie nazwy wywoływanej funkcji w parametrze jest niemożliwe od strony AQQ...

Przecież w momencie wywoływania funkcji AQQ wie jaką funkcję wywołuje, więc mogłoby podać łaskawie taką informację.







Również z jednym lub większą ilością słów kluczowych: wtyczki, plugins, api, sdk

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych