Καλησπέρα, με την χρήση τριών προγραμμάτων και αρκετή δουλειά στο χέρι, μετατρέπω το αρχειο επαφών που εξαγω απο την google (contacts.csv) σε αρχείο ldif ώστε να το εισάγω στον LDAP σερβερ που έχω και να κάνω αναζήτηση με όνομα στο cisco 525.

Πρέπει όμως να το ανανεώνω συχνά ώστε να παίρνει τις νεες επαφες. Απλά σβήνω τα παντα και εισάγω νέο ενημερωμένο αρχείο.

Δεν βρέθηκε κανένας να γράψει ενα script που να μετατρέπει αυτό

Κώδικας:
Name,Given Name,Additional Name,Family Name,Yomi Name,Given Name Yomi,Additional Name Yomi,Family Name Yomi,Name Prefix,Name Suffix,Initials,Nickname,Short Name,Maiden Name,Birthday,Gender,Location,Billing Information,Directory Server,Mileage,Occupation,Hobby,Sensitivity,Priority,Subject,Notes,Language,Photo,Group Membership,E-mail 1 - Type,E-mail 1 - Value,Phone 1 - Type,Phone 1 - Value,Phone 2 - Type,Phone 2 - Value,Organization 1 - Type,Organization 1 - Name,Organization 1 - Yomi Name,Organization 1 - Title,Organization 1 - Department,Organization 1 - Symbol,Organization 1 - Location,Organization 1 - Job Description
ADRIAN AA,ADRIAN,,AA,,,,,,,,,,,,,,,,,,,,,,,,,* myContacts,* ,adrian@adrian.gr,Mobile,+491724666666,Work,+30 251 666 6666,,,,,,,,
ANJA AA,ANGIA,,AA,,,,,,,,,,,,,,,,,,,,,,,,,* myContacts,,,Mobile,+49 1515 6666666,Work,+30 251 666 6665,,,,,,,,

σε αυτό;


Κώδικας:
dn: uid=card-id-5db070a957116,ou=Users,dc=mydomain,dc=gr
objectclass: inetOrgPerson
cn: ADRIAN 
sn: AA
givenName: ADRIAN 
mobile: 00491724666666
telephoneNumber: 2510666666
mail: mail@mail.com
uid: card-id-5db070a957116

dn: uid=card-id-5db070a957345,ou=Users,dc=mydomain,dc=gr
objectclass: inetOrgPerson
cn: ANJA AA
sn: ANJA AA
mobile: 004915156666666
telephoneNumber: 2510666665
mail: mail2@mail.com
uid: card-id-5db070a957345
Ευχαριστώ πολύ

ps
Αν καταπιαστεί κάποιος, θα ήταν χρήσιμο να προσθέσει:

1) Μετατροπή των ελληνικων σε γκρικλις
2) Διαγραφη των κενων από τους αριθμους τηλεφωνου
3) Ορισμο σερβερ
4) Ορισμο objectClass

- - - Updated - - -

Τελικά βασίστηκα σε αυτό https://gist.github.com/pc-magas/760...1d2d276fcb9bed

και το βελτίωσα λιγάκι ώστε να δίνει uid στην επαφή και μην γράφει κάτι όταν δεν υπάρχει.

https://pastebin.com/raw/qQi86a8N

Κώδικας:
#!/usr/bin/env php
<?php
// Google Contacts csv to ldif (LDAP) converter
// Credits pc_magas, George Rousopoulos
// You can transform greek to greeklish csv here https://www.datagen.gr/index.php?option=scripts&script=greek_to_greeklish
// Input CSV
$csv_file="contacts.csv";

// Output file
$ldap="contacts.ldif";

/**
* ###################### Do not edit ellow this line ##################
*/

$ldapHandler=fopen($ldap,"w");

$csv_file_handler=fopen($csv_file,"r");


$recordHeader=",ou=Users,dc=mydomain,dc=gr".PHP_EOL."objectclass: inetOrgPerson".PHP_EOL;

$firstLineSkip=true;

if (($csv_file_handler=fopen($csv_file,"r")) !== FALSE) {
    while (($data = fgetcsv($csv_file_handler, 1000, ",")) !== FALSE) {
        
        if($firstLineSkip) {
         $firstLineSkip=false;
         continue;   
        }
		$uniqid=uniqid();
        $mail=trim($data[30]);
        $cn=trim($data[0]);
        $sn=trim($data[3]);
        $givenName=$data[1];
        $mobile=str_replace(' ','',$data[37]);
		$mobile=str_replace('+30','',$mobile);
        $mobile=str_replace('+','00',$mobile);
        $phone=str_replace(' ','',$data[39]);
		$phone=str_replace('+30','',$phone);
        $phone=str_replace('+','00',$phone);

        $record='dn: uid='.$uniqid.''.$recordHeader;
        $record.='cn: '.$cn.PHP_EOL;
        $record.='sn: '.$cn.PHP_EOL;
        $record.='givenName: '.$cn.PHP_EOL;
				
		if (!empty($mail)) {
    $record.='mail: '.$mail.PHP_EOL;
}
        if (!empty($mobile)) {
        $record.='mobile: '.$mobile.PHP_EOL;
}		
		if (!empty($phone)) {
    $record.='telephoneNumber: '.$phone.PHP_EOL;
}
        		
        $record.='uid: '.$uniqid.PHP_EOL;

        fwrite($ldapHandler,$record.PHP_EOL.PHP_EOL);
    }
}

fclose($ldapHandler);
fclose($csv_file_handler);;
Σίγουρα μπορεί να βελτιωθεί