Dodaj Kontakt Edytuj Usuń
Jakub Вοgusłаw Jagiełło

Informatyka

Format opisu profili użytkownika

Format ten postanowiłem stworzyć, ponieważ modny stał się ostatnio portal Nasza Klasa, wcześniej zaś popularny był Epuls. Zresztą takich różnych portali cała wuchta napowstawała.

W czym jednak problem? Każdy z nich osobno pokazuje jakieś dane o zarejestrowanych osobach, żaden nie umie zrobić użytku z danych zgromadzonych w innych. Ba! Nasza Klasa w ogóle nawet nie przewiduje możliwości pochwalenia się swoją strona albo blogiem, co mogło by ułatwić dotarcie do informacji np. na Onetowym blogu czy w Epulsowej galerii.

Wobec powyższych problemów chcę utworzyć format pozwalający w jednorodny sposób zawrzeć informacje znajdujące się na stronach tego typu serwisów w dokumencie XML. Najsampierw tworzę tylko definicję formatu, ale jako iż liczenie że autorzy takich portali dodadzą wsparcie dla niego do swoich stron jest naiwnością, więc kolejnym krokiem będzie napisanie (w Pythonie albo PHP) parsera który pobierał by strony z portali i tłumaczył HTMLową reprezentację informacji na rzeczony XMLowy format.

Na koniec jeszcze jedna sprawa — istnieją inne formaty opisujące profile użytkowników, jak np. „XML User Profiles”, jednak jego struktura mi nie odpowiadała (zbyt duży nacisk na podobieństwo do HTML'a nie pozwala np. zdefiniować sobie nowego komunikatora tak, aby programy nie znające go wiedziały że jest to komunikator, a ponadto nie pozwala jednoznacznie oznaczyć imienia i nazwiska itp.) więc zdecydowałem się na własny.

Struktura dokumentu

Pokażmy ją w formie pseudokodu:


<?xml version="1.0" encoding="utf-8" ?>
<person>
   <-- Komunikatory („rel” jest opcjonalne i może być dowolne) -->
   <msg type="msg_type" rel="domowy">numer/identyfikator komunikatora</msg>
   
   <-- Adresy stron -->
   <url type="url_type">URL</url>
   
   <-- Imiona, nazwiska i ksywki -->
   <nick>JaBoJa</nick>
   <name>Jakub</name><name>Bogusław</name>
   <surname>Jagiełło</surname><surname>ewentualne nazwisko panieńskie</surname>
   
   <-- Adresy - kolejność elementów nie ma znaczenia, żaden nie jest wymagany. -->
   <address>
      <name>Pan Ździchu Pędzel</name>
      <street>ul. Kaszankowa</street><number>nr. domu/nr. mieszkania</number>
      <code>61-224</code><locality>Poznań</locality>
      <country>Poland</country>
      <-- jeśli miejscowość w locality nie ma poczty -->
      <post>Poznań</post>
   </address>
   
   <-- Płeć (m - mężczyzna, f - kobieta). Żeby już nie szaleć z unicodem
   nie wprowadzam ♂ i ♀, acz ładniej by wtedy wyglądało. -->
   <sex>m|f</sex>
   
   <-- Data urodzenia albo wiek (niedopuszczalne oba naraz).
   Preferowany format jak poniżej, ale dopuszczalny każdy bezwzględny
   format zrozumiałym dla strtotime() z PHP. „now” itp. niedopuszczalne -->
   <born>[dd-mm-]yyyy</born>
   <age>20</age>
   
   <-- Zdjęcia, rysunki, obrazy i ilustracje (wymagany atrybut url lub href).
   „date” jest datą publikacji w serwisie. „thumb” musi być w formacie GIF,
   JPEG lub PNG. „src” w dowolnym formacie graficznym, ale jeśli nie jest to
   żaden z wymienionych to parametr „mime” staje się obowiązkowy. -->
   <img src="url" thumb="url" href="iri" mime="application/x-shockwave-flash"
      date="dd-mm-yyyy" size="20kB" type="img_type">
      <-- Jeśli nie ma podziału na tytuł i opis należy pominąć dwa następne zna-
      czniki i wpisać tytuł zdjęcia nie objęty żadnym dodatkowym znacznikiem. -->
      <title>Tytuł</title>
      <descr>Opis</descr>
      <-- Komentarze. Parametr „href” jest wymagany. Jeśli strona nie ma
      licznika komentarzy znacznik może być pusty.  -->
      <comments href="iri">ilośc komentarzy</comments>
   </img>
</person>
		

Typy

Typy komunikatorów (msg_type):

  • e-mail (domyślny) – zwykła poczta elektroniczna (SMTP)
  • phone – Numer telefonu
  • jabber – Jabber i wszystkie oparte na nim komunikatory
  • skype – Skype
  • tlen – Tlen.pl
  • gg – Gadu-gadu
  • icq – ICQ
  • aol – America Online messager
  • yim – Yahoo! Messager
  • msn – MSN Messager

Typy adresów stron (url_type):

  • website (domyślny) – zwykła strona (domowa/firmowa/jakaś inna)
  • blog – pamiętnik internetowy
  • forum – forum lub grupa dyskusyjna (preferowany adres z news://)
  • openididentyfikator OpenID

Typy zdjęć i ilustracji (img_type) — trzy, z których zawsze występuje dokładnie jeden (choćby domyślny), oraz dwa dodatkowe, które mogą być do niego dodawane. Wspomniane trzy podstawowe:

  • unknown (domyślny) – nieznany rodzaj obrazu (zalecane pomijanie tego parametru)
  • photo – zdjęcie
  • other – obraz nie będący zdjęciem (rysunek, grafika etc.)

I dwa dodatkowe:

  • avatar – obraz jest awatarem, nie definiuje się jednak czy przedstawia właściciela
  • portrait – obraz przedstawia właściciela (nie musi to być jednak ani awatar ani zdjęcie)

Poszczedólne typy rozdzielamy spacjami. Kilka przykładów:

  • photo avatar portrait – awatar w formie zdjęcia osoby którą przedstawia (jak na Epulsie)
  • other avatar – np. awatar z narysowanym kotkiem
  • photo – np. zdjęcie koleżanki
< Komentuj stronę / artykuł >
Ikosaedr
Moje (tzn. zrobione przez Jakuba Jagiełło, a nie go przedstawiające) zdjęcia w PanoramioIconBuffetSblam – a konkretniej obsługująca go wtyczka (mojego autorstwa) do Phorumthe Gimp for Windows (gimp-win/win-gimp)
Copyright © Jakub Bοgusław Jagiełło – Wszystkie prawa zastrzeżone, chyba że napisano inaczej.