Ok, again here after a little break ;)
For Imageshack:
1) I have added a "q_multikey" field (text utf8_general_ci default NULL) at the end of wp_photoq tables. It's a text field where I put several metakey (or postmeta) information (in my case -and for now- imageshack url and imageshack thumbnail url).
In this way -in the future- I could add other multiple metakey information (as data map or photonotes) without change database or other photoq php files (but only queue uploadphoto function).
In text box data are recorded in this way (in my example):
photoQKeyImageshack{}http://imageshackBigFileURL.jpg}{photoQKeyImageshackThumb{}http://imageshackThumbFileURL.jpg
As you can see I use '{}' to separate name of metakey field from his value and '}{' to separate several metakey information.
2) Code to insert in classes/photoQ.php at lines 789 (in uploadPhoto function):
$multikey = '';
$imageshackoption = true;
$domainqphoto = 'http://www.example.com/';
$fileshackdir = $this->_oc->getQDir();
$fileshackdir2 = $fileshackdir . basename($file);
$posfileshackdir = strpos ($fileshackdir, 'wp-content/blogs.dir');
$fileshackdir= substr ( $fileshackdir , $posfileshackdir );
$fileshackdir = $domainqphoto . $fileshackdir;
$fileshack = $fileshackdir . basename($file);
$fileshack2 = $fileshack;
if ($imageshackoption){
$source = 'http://www.imageshack.us/upload_api.php?url=' . $fileshack. '&action=transload';
$fileshackBig = '';
$source_page = file_get_contents($source);
if (strpos ($source_page, '<image_link>') != false) {
$posfilestart = strpos ($source_page, '<image_link>') + 12;
$posfileend = strpos ($source_page, '</image_link>') - $posfilestart;
$fileshackBig = substr ($source_page , $posfilestart , $posfileend);}
else {$fileshackBig = 'error';}
}
if($fileshackBig != 'error'){$multikey = 'photoQKeyImageshack{}'.$fileshackBig.'}{';}
if ($imageshackoption){
if (!$fileshack) {
$source = 'http://www.imageshack.us/upload_api.php?url=' . $fileshack. '&optimage=1&optsize=320x320&action=transload';}
else {$source = 'http://www.imageshack.us/upload_api.php?url=' . $fileshack2. '&optimage=1&optsize=320x320&action=transload';}
$fileshackBig = '';
$source_page = file_get_contents($source);
$fileshackThumb = '';
$source_page = file_get_contents($source);
if (strpos ($source_page, '<image_link>') != false) {
$posfilestart = strpos ($source_page, '<image_link>') + 12;
$posfileend = strpos ($source_page, '</image_link>') - $posfilestart;
$fileshackThumb = substr ($source_page , $posfilestart , $posfileend);}
else {$fileshackThumb = 'error';}
}
if($fileshackThumb != 'error'){$multikey = $multikey.'photoQKeyImageshackThumb{}'.$fileshackThumb;}
3) always in photoQ.php, few lines below, I modify
//add photo to queue
if(!$result = $wpdb->query("INSERT INTO $this->QUEUE_TABLE (q_title, q_imgname, q_position, q_slug, q_descr, q_tags, q_exif, q_date, q_fk_author_id) VALUES ('$title', '$filename', '".($this->_queue->getLength())."', '$slug', '$descr', '$tags', '$exif', '$dateTime', '$post_author')"))
in:
//add photo to queue
if(!$result = $wpdb->query("INSERT INTO $this->QUEUE_TABLE (q_title, q_imgname, q_position, q_slug, q_descr, q_tags, q_exif, q_date, q_fk_author_id, q_multikey) VALUES ('$title', '$filename', '".($this->_queue->getLength())."', '$slug', '$descr', '$tags', '$exif', '$dateTime', '$post_author', '$multikey')"))
4) now (if I understand how your plugin works) I have to modify classes/PhotoQPhoto.php (and in particular publish function) for:
a) load "q_multikey" text field
b) separate metakey field and value
c) with a foreach, insert "add_post_meta()" function as many times as number of metakey
But I'm not php expert programmer so for to write my fourth point I need another day ;))))
Anyway, until point 3, my code work: put image in queue with imageshack of big image and imageshack of thumb.
NOTE: please don't laugh for excessive number of line code I use for my imageshack function ;)))