Latin Spelling module
Hello. Anybody know something about a latin language spelling module for Indesign?
Thank you.
Attila
Install from here:
https://addons.mozilla.org/en-US/firefox/language-tools/
And follow instructions how to add or remove from here:
Add or remove Hunspell dictionaries | CC, CS6
http://helpx.adobe.com/indesign/kb/add_cs_dictionaries.html
Also see in details instructions to add language by Sandee Cohen:
Adding Hunspell Dictionaries to InDesign
http://indesignsecrets.com/adding-hunspell-dictionaries-indesign.php
Similar Messages
-
Unable to isync palm Z22, failing on ical
just got a new palm z22, set up for isync. i've got Mac OSX 10.3.9, isync 1.5, ical 1.5.5(v670).
in hotsync conduit manager, for isync conduit, checked "enable isync for this palm device". when i do sync, it takes forever the first time (as expected) but ultimately it fails, hotsync log is pasted below. however, it does look like all my entries (from ical, address book, etc.) DID get added to my palm! however without a successful initial sync i'm assuming subsequent syncs will also take forever and fail.
checked free space on my palm after sync failure, it says i have free space 19.4M of 24.6M. i have 8 years worth of data in my ical but it's not very big, on palm it says calendar is 672K / 8568 records. interestingly, it also says date book is 467K / 8555 records. i didn't get any conduit conflicts so am not sure why they both are getting updated.
did see some postings about manually managing conduits in /Library/Application Support/Palm Hotsync/Conduits folders, but after one of my syncs, everything in that folder disappeared! even so, hotsync does seem to run and data gets added to my Palm but sync ultimately fails.
if anyone could provide some pointers it would be GREATLY appreciated!
-=-=-=-=-=-=-=-=-=latest HotSync log-=-=-=-=-=-=-=-=-=-=
HotSync 3.2.1 started 10/23/07 22:19:46
Loading “Conflict Notifier”
Notifier 'Conduit Conflict Notifier' version 1.0.0
Notifier Conduit Conflict Notifier OK
Handheld device is syncing for the first time
Local Synchronization
Syncing via transport “USB”
Found Palm user “Palm Z22”
ROM Listing
FileName Version Type Creator Created Modified Flags
PmNetLib-netl 00CB LiBr netl 07/29/05 07/29/05 0003
DmTxn 0002 aexo DmTx 03/14/05 03/14/05 0003
HsNav 0002 aexo HsEp 08/08/05 08/08/05 0003
PIMsSupport-pdmE 0008 aexo pdmE 06/16/05 06/16/05 0003
SecurityAppPatch 0002 aexo secE 08/23/05 08/23/05 0003
GoLCDExt 0001 aext GAny 08/14/03 08/14/03 0023
DevicePatch-dphE 0006 aext dphE 07/13/05 07/13/05 0003
SystemNotify-snfE 0001 aext snfE 07/31/03 07/31/03 0003
SystemPatch-sphE 0005 aext sphE 06/27/05 06/27/05 0003
Default Content Loader 0003 appl DCL8 08/09/05 08/09/05 0143
DynDevInfo-DDIR 0001 appl DDIR 03/26/03 03/26/03 0103
Display-Dply 0002 appl Dply 08/08/05 08/08/05 0143
Contacts-PAdd 0001 appl PAdd 08/23/05 08/23/05 0003
Calendar-PDat 0003 appl PDat 08/23/05 08/23/05 0003
Memos-PMem 000A appl PMem 08/23/05 08/23/05 004B
Tasks-PTod 0003 appl PTod 08/23/05 08/23/05 0003
Clock-PcLK 0005 appl PcLK 04/27/05 04/27/05 004B
QueriesApp 0001 appl QRYS 09/27/04 09/27/04 014B
Address Book 0002 appl addr 01/17/05 01/17/05 0103
Date Book 0002 appl date 01/17/05 01/17/05 0103
Launcher 021E appl lnch 08/19/05 08/19/05 0003
Language Picker 0006 appl lpkr 07/13/05 07/13/05 0143
Memo Pad 0002 appl memo 01/17/05 01/17/05 0103
Note Pad 000A appl npad 09/07/04 09/07/04 0043
HiddenPIMsSupport-pdmE 0008 appl pdmE 06/16/05 06/16/05 0103
Preferences 000B appl pref 10/07/04 10/07/04 004B
LiveModeApp-rfsL 0003 appl rfsL 08/24/05 08/24/05 0103
Setup 0006 appl setp 08/19/05 08/19/05 0143
HotSync 0002 appl sync 09/06/05 09/06/05 0843
To Do List 0002 appl todo 01/17/05 01/17/05 0103
DefConnection2DB_enUS 0004 dflt modm 03/31/03 03/31/03 000A
DefConnection2DB_frFR 0004 dflt modm 04/01/03 04/01/03 000A
DefConnection2DB_itIT 0004 dflt modm 04/01/03 04/01/03 000A
DefConnection2DB_deDE 0004 dflt modm 04/01/03 04/01/03 000A
DefConnection2DB_esES 0004 dflt modm 04/01/03 04/01/03 000A
DefConnection2DB_ptBR 0004 dflt modm 04/01/03 04/01/03 000A
IrDA Library 0225 exgl irda 06/13/05 06/13/05 0003
ExgLocal Library-locl 021C exgl locl 02/16/04 02/16/04 0043
HostControl Library 0221 hstl host 05/26/05 05/26/05 0003
PADHTAL Library 0221 htal hpad 05/26/05 05/26/05 0003
RelHTAL Library 0004 htal hrel 05/12/05 05/12/05 0003
NandFlashFilesystem 0002 libf NFFS 08/08/05 08/08/05 0003
FATFS 0225 libf fatf 05/26/05 05/26/05 0003
FCCMLib 0001 libr FCCM 08/12/02 08/12/02 000B
GoLCDLib 0001 libr GAny 08/14/03 08/14/03 0023
HardwareUtils 0002 libr HWut 03/26/03 03/26/03 000B
MathLib 0001 libr MthL 04/14/99 04/14/99 000B
VPNShimLib-NLds 0008 libr NLds 07/15/05 07/15/05 0003
CalendarLib-P1CL 0001 libr P1CL 05/10/05 05/10/05 0003
ContactsLib-P1CT 0001 libr P1CT 05/10/05 05/10/05 0003
DeviceRes-PDvc 0003 libr PDvc 08/23/05 08/23/05 0003
ImageUtils-PIUL 0003 libr PIUL 03/14/05 03/14/05 0003
IMUMath-PIUM 0003 libr PIUM 03/14/05 03/14/05 0003
PalmPhotoLib 0001 libr PMPL 08/03/05 08/03/05 0003
PmKeyLib-PmKe 0001 libr PmKe 05/19/05 05/19/05 0003
PmSysGadgetLib-PmSg 0001 libr PmSg 09/02/05 09/02/05 0003
PmSystemLib-PmSy 0001 libr PmSy 05/11/05 05/11/05 0003
PmUIUtilLib-PmUU 0001 libr PmUU 08/26/05 08/26/05 0063
TxnLogLib 0001 libr TxLg 03/14/05 03/14/05 000B
PACE 0225 libr a68k 05/26/05 05/26/05 0003
AboutBoxLib-abxL 0007 libr abxL 08/10/05 08/10/05 0003
Address Sort Library 0221 libr adbs 05/26/05 05/26/05 0003
CategoryLib-catL 0001 libr catL 03/14/05 03/14/05 0103
ConnectLib-cctL 0002 libr cctL 09/27/04 09/27/04 000B
CPM Library 0221 libr cpml 05/26/05 05/26/05 0003
Shortcuts Library 0225 libr graf 05/26/05 05/26/05 0043
Graffiti 2 Library 0002 libr grft 09/06/05 09/06/05 000B
HardwareUtils-hwrL 0003 libr hwrL 09/27/04 09/27/04 0003
LocsLib-locL 0005 libr locL 03/14/05 03/14/05 014B
MapLib 0001 libr mapL 03/14/05 03/14/05 000B
Fake Net Library 0069 libr netl 07/15/05 07/15/05 0003
CompressionPng 0001 libr pclA 07/14/03 07/14/03 0003
Pdi Library 0221 libr pdil 05/26/05 05/26/05 0003
PmTraceLib-pmtL 0001 libr pmtL 07/25/05 07/25/05 0003
PmRemoteFSLib-rfsL 0003 libr rfsL 08/24/05 08/24/05 0003
SndFileStream-sfsL 0001 libr sfsL 11/02/04 11/02/04 000B
SSL Library 0221 libr ssl0 05/26/05 05/26/05 0003
SSL Crypto Library 0221 libr ssl1 05/26/05 05/26/05 0003
SerialLib 021C libr swrp 02/16/04 02/16/04 0003
CompressionZlib 0001 libr zclA 03/26/03 03/26/03 0003
NFFSSlotDriver 0003 libs NFSD 08/23/05 08/23/05 0003
Latin Locale Module 0005 locm lati 09/06/05 09/06/05 0843
Loopback NetIF 0221 neti loop 05/26/05 05/26/05 0003
SLIP NetIF 0221 neti slip 05/26/05 05/26/05 0003
Display-Dply_enUS 0002 ovly Dply 08/08/05 08/08/05 0943
GoLCDPanel-GAny_enUS 0002 ovly GAny 09/14/04 09/14/04 0803
HsNav_enUS 0002 ovly HsEp 08/08/05 08/08/05 0803
Keylock_enUS 0002 ovly KEYL 09/14/04 09/14/04 0803
CalendarLib-P1CL_enUS 0001 ovly P1CL 05/10/05 05/10/05 0803
ContactsLib-P1CT_enUS 0001 ovly P1CT 05/10/05 05/10/05 0803
Contacts-PAdd_enUS 0001 ovly PAdd 08/23/05 08/23/05 0803
Calendar-PDat_enUS 0003 ovly PDat 08/23/05 08/23/05 0803
DeviceRes-PDvc_enUS 0003 ovly PDvc 08/23/05 08/23/05 0803
PalmPhotoLib_enUS 0001 ovly PMPL 08/03/05 08/03/05 0803
Memos-PMem_enUS 000A ovly PMem 08/23/05 08/23/05 084B
Tasks-PTod_enUS 0003 ovly PTod 08/23/05 08/23/05 0803
Clock-PcLK_enUS 0005 ovly PcLK 04/27/05 04/27/05 084B
PmSysGadgetLib-PmSg_enUS 0001 ovly PmSg 09/02/05 09/02/05 0803
PmUIUtilLib-PmUU_enUS 0001 ovly PmUU 08/26/05 08/26/05 0863
Power_enUS 0004 ovly Powr 09/14/04 09/14/04 0803
SoundsAlerts_enUS 0003 ovly SdAl 09/14/04 09/14/04 0803
AboutBoxLib-abxL_enUS 0007 ovly abxL 08/10/05 08/10/05 0803
Address Book_enUS 0002 ovly addr 01/17/05 01/17/05 0903
Buttons_enUS 0002 ovly bttn 08/04/05 08/04/05 0803
CategoryLib-catL_enUS 0001 ovly catL 03/14/05 03/14/05 0903
ConnectLib-cctL_enUS 0002 ovly cctL 09/27/04 09/27/04 080B
ColorTheme-colP_enUS 0004 ovly colP 03/11/05 03/11/05 0803
CPM Library_enUS 0221 ovly cpml 05/26/05 05/26/05 0803
Date Book_enUS 0002 ovly date 01/17/05 01/17/05 0903
Touchscreen_enUS 0004 ovly digi 09/14/04 09/14/04 0803
DevicePatch-dphE_enUS 0006 ovly dphE 07/13/05 07/13/05 0803
Date & Time_enUS 0005 ovly dttm 09/14/04 09/14/04 0803
Formats_enUS 0003 ovly frmt 09/14/04 09/14/04 0803
Shortcuts Library_enUS 0225 ovly graf 05/26/05 05/26/05 0843
Graffiti 2 Prefs_enUS 0003 ovly grfp 09/14/04 09/14/04 0803
Graffiti 2 Library_enUS 0002 ovly grft 09/06/05 09/06/05 080B
IrComm Serial Driver_enUS 0221 ovly ircm 05/26/05 05/26/05 0843
IrDA Library_enUS 0221 ovly irda 05/26/05 05/26/05 0803
Latin Locale Module_enUS 0005 ovly lati 09/06/05 09/06/05 0843
Launcher_enUS 021E ovly lnch 08/19/05 08/19/05 0803
LocsLib-locL_enUS 0005 ovly locL 03/14/05 03/14/05 094B
ExgLocal Library-locl_enUS 021C ovly locl 02/16/04 02/16/04 0803
Memo Pad_enUS 0002 ovly memo 01/17/05 01/17/05 0903
Connection_enUS 0008 ovly modm 09/14/04 09/14/04 0803
Fake Net Library_enUS 0069 ovly netl 07/15/05 07/15/05 0803
Note Pad_enUS 000A ovly npad 09/07/04 09/07/04 0843
Owner_enUS 0003 ovly ownr 09/14/04 09/14/04 0803
DeviceResources_enUS 021C ovly pdvc 09/06/05 09/06/05 0843
Preferences_enUS 000B ovly pref 10/07/04 10/07/04 084B
Boot_enUS 0002 ovly psys 09/06/05 09/06/05 0843
Boot_frFR 0002 ovly psys 09/06/05 09/06/05 0843
Boot_itIT 0002 ovly psys 09/06/05 09/06/05 0843
Boot_deDE 0002 ovly psys 09/06/05 09/06/05 0843
Boot_esES 0002 ovly psys 09/06/05 09/06/05 0843
Boot_ptBR 0002 ovly psys 09/06/05 09/06/05 0843
UIAppShell_enUS 0002 ovly psys 08/26/05 08/26/05 0803
Palm OS Data_enUS 021C ovly psys 09/06/05 09/06/05 0843
Palm OS Data_frFR 021C ovly psys 09/06/05 09/06/05 0843
Palm OS Data_itIT 021C ovly psys 09/06/05 09/06/05 0843
Palm OS Data_deDE 021C ovly psys 09/06/05 09/06/05 0843
Palm OS Data_esES 021C ovly psys 09/06/05 09/06/05 0843
Palm OS Data_ptBR 021C ovly psys 09/06/05 09/06/05 0843
LiveModeApp-rfsL_enUS 0003 ovly rfsL 08/24/05 08/24/05 0903
Security_enUS 0007 ovly scrt 08/25/05 08/25/05 0803
Setup_enUS 0006 ovly setp 08/19/05 08/19/05 0943
SndFileStream-sfsL_enUS 0001 ovly sfsL 11/02/04 11/02/04 080B
ShortCuts_enUS 0003 ovly shct 09/14/04 09/14/04 0803
SLIP NetIF_enUS 0221 ovly slip 05/26/05 05/26/05 0803
SerialPhoneTask_enUS 0221 ovly spht 05/26/05 05/26/05 080B
SSL Library_enUS 0221 ovly ssl0 05/26/05 05/26/05 0803
SSL Crypto Library_enUS 0221 ovly ssl1 05/26/05 05/26/05 0803
StdGSMDriver_enUS 021C ovly stgd 02/16/04 02/16/04 086B
HotSync_enUS 0002 ovly sync 09/06/05 09/06/05 0843
To Do List_enUS 0002 ovly todo 01/17/05 01/17/05 0903
GoLCDPanel-GAny 0002 panl GAny 09/14/04 09/14/04 0003
Keylock 0002 panl KEYL 09/14/04 09/14/04 0003
Power 0004 panl Powr 09/14/04 09/14/04 0003
SoundsAlerts 0003 panl SdAl 09/14/04 09/14/04 0003
Buttons 0002 panl bttn 08/04/05 08/04/05 0003
ColorTheme-colP 0004 panl colP 03/11/05 03/11/05 0003
Touchscreen 0004 panl digi 09/14/04 09/14/04 0003
Date & Time 0005 panl dttm 09/14/04 09/14/04 0003
Formats 0003 panl frmt 09/14/04 09/14/04 0003
Graffiti 2 Prefs 0003 panl grfp 09/14/04 09/14/04 0003
Connection 0008 panl modm 09/14/04 09/14/04 0003
Owner 0003 panl ownr 09/14/04 09/14/04 0003
Security 0007 panl scrt 08/25/05 08/25/05 0003
ShortCuts 0003 panl shct 09/14/04 09/14/04 0003
StdGSMDriver 021C pdrv stgd 02/16/04 02/16/04 006B
DAL 0001 rsrc pdal 09/12/05 09/12/05 0003
DeviceResources 021C rsrc pdvc 09/06/05 09/06/05 0843
Boot 0002 rsrc psys 09/06/05 09/06/05 0843
UI 0223 rsrc puil 05/26/05 05/26/05 0003
PalmAppResources-rscP 0001 rsrc rscP 07/31/03 07/31/03 0003
Cmd-nettrace 021C sdio nett 02/16/04 02/16/04 0003
Cmd-ping 021C sdio ping 02/16/04 02/16/04 0003
Palm OS Data 021C spls psys 09/06/05 09/06/05 0843
SerialPhoneTask 0221 ttsk spht 05/26/05 05/26/05 000B
UIAppShell 0002 uish psys 08/26/05 08/26/05 0003
IrComm Serial Driver 0221 vdrv ircm 05/26/05 05/26/05 0043
USBDrvr 0001 vdrv pusb 09/12/05 09/12/05 0003
Serial 0001 vdrv uS24 09/12/05 09/12/05 0003
RAM Listing
FileName Version Type Creator Created Modified Flags
AdditTGSData 0000 AVSU Bmsy 10/23/07 10/23/07 0000
ADD051SData 0000 AVSU Bmsy 10/23/07 10/23/07 0008
AdditSystemSData 0064 AVSU Bmsy 10/23/07 10/23/07 0000
AdditTGVData 0000 AVUD Bmsy 10/23/07 10/23/07 0000
AddItVData 0000 AVUD Bmsy 10/23/07 10/23/07 0000
ADD051VData 0000 AVUD Bmsy 10/23/07 10/23/07 0008
AdditSystemVData 0064 AVUD Bmsy 10/23/07 10/23/07 0000
Carbs_appendix 0001 Bfdb BfLn 01/14/05 01/14/05 0142
AddIt_data 0002 Bfdb Bmsy 07/28/05 07/28/05 0042
AddItdeDEdata 0002 Bfdb Bmsy 07/13/05 07/13/05 0042
AddItesESdata 0002 Bfdb Bmsy 07/12/05 07/12/05 0042
AddItfrFRdata 0002 Bfdb Bmsy 07/12/05 07/12/05 0042
AddItitITdata 0002 Bfdb Bmsy 07/12/05 07/12/05 0042
AddItptBRdata 0002 Bfdb Bmsy 07/12/05 07/12/05 0042
ContactsDB-PAdd 0001 DATA PAdd 10/23/07 10/23/07 0000
CalendarDB-PDat 0001 DATA PDat 10/23/07 10/23/07 0000
MemosDB-PMem 0001 DATA PMem 10/23/07 10/23/07 0000
TasksDB-PTod 0001 DATA PTod 10/23/07 10/23/07 0000
Queries 0000 DATA QRYS 10/23/07 10/23/07 0008
AddressDB 0000 DATA addr 10/23/07 10/23/07 0000
DatebookDB 0000 DATA date 10/23/07 10/23/07 0000
locLDefLocationDB 0002 DATA locL 10/23/07 10/23/07 0008
MemoDB 0000 DATA memo 10/23/07 10/23/07 0000
ConnectionMgr50DB 0000 DATA modm 10/23/07 10/23/07 0008
npadDB 0001 DATA npad 07/28/36 10/23/07 0008
PIMsSupportStatus-pdmE 0000 DATA pdmE 10/23/07 10/23/07 0000
ToDoDB 0000 DATA todo 10/23/07 10/23/07 0000
locLCusLocationDB 0002 DATC locL 10/23/07 10/23/07 0008
locLTimeZoneDB 0001 DATT locL 10/23/07 10/23/07 0000
AS_Knowledge-Content 0001 Data BfLn 07/13/05 07/13/05 0042
ASKnowledgedeDE-Content 0001 Data BfLn 07/13/05 07/13/05 0042
ASKnowledgeesES-Content 0001 Data BfLn 07/13/05 07/13/05 0042
ASKnowledgefrFR-Content 0001 Data BfLn 07/13/05 07/13/05 0042
ASKnowledgeitIT-Content 0001 Data BfLn 07/13/05 07/13/05 0042
ASKnowledgeptBR-Content 0001 Data BfLn 07/13/05 07/13/05 0042
Carbs-Content 0001 Data BfLn 03/17/05 03/17/05 0142
AS_FirstAid-Content 0001 Data BfLn 08/05/05 08/05/05 0042
AdditTryBuy-Content 0003 Data BfLn 07/28/05 07/28/05 0042
AdditTryBuy_deDE-Content 0003 Data BfLn 07/22/05 07/22/05 0042
AdditTryBuy_esES-Content 0003 Data BfLn 07/22/05 07/22/05 0042
AdditTryBuy_frFR-Content 0003 Data BfLn 07/22/05 07/22/05 0042
AdditTryBuy_itIT-Content 0003 Data BfLn 07/22/05 07/22/05 0042
AdditTryBuy_ptBR-Content 0003 Data BfLn 07/22/05 07/22/05 0042
AdditMyTG-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditMyTG_deDE-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditMyTG_esES-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditMyTG_frFR-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditMyTG_itIT-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditMyTG_ptBR-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditNewsTG-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditNewsTG_deDE-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditNewsTG_esES-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditNewsTG_frFR-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditNewsTG_itIT-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditNewsTG_ptBR-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditShopTG-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditShopTG_deDE-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditShopTG_esES-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditShopTG_frFR-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditShopTG_itIT-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AdditShopTG_ptBR-Content 0004 Data BfLn 08/04/05 08/04/05 0042
AddItStart-Content 0003 Data Bmsy 08/03/05 08/03/05 0042
AddItStart_deDE-Content 0003 Data Bmsy 08/03/05 08/03/05 0042
AddItStart_esES-Content 0003 Data Bmsy 08/03/05 08/03/05 0042
AddItStart_frFR-Content 0003 Data Bmsy 08/03/05 08/03/05 0042
AddItStart_itIT-Content 0003 Data Bmsy 08/03/05 08/03/05 0042
AddItStart_ptBR-Content 0003 Data Bmsy 08/03/05 08/03/05 0042
Tutorial-Content 0001 Data HsTM 08/24/05 08/24/05 0042
System DB Chain Head 0000 Dumm HsTr 10/23/07 10/23/07 8000
DevicePatchVFSCacheDB 0000 a68k a68k 10/23/07 10/23/07 8000
PACERsrcDB9 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB8 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB7 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB6 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB5 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB4 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB3 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB2 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB1 0000 a68k a68k 10/23/07 10/23/07 0001
PACERsrcDB0 0000 a68k a68k 10/23/07 10/23/07 0001
PACE Data Store Reserve 0000 a68k a68k 10/23/07 10/23/07 0001
CrazyDaisy 0001 appl AwCD 07/28/05 07/28/05 0043
CHESS 0002 appl BfCh 08/15/05 08/15/05 0143
CheckSplit 0003 appl BfCs 07/25/05 07/25/05 014B
AdditTG 0003 appl BfLn 08/09/05 08/09/05 0043
AddItVault 0047 appl Bmsy 08/15/05 08/15/05 0143
Tutorial 0001 appl HsTM 06/20/05 08/24/05 0043
Solitaire 0001 appl Pat2 07/28/05 07/28/05 0143
SplashPhoto 0001 appl SpPh 08/03/05 08/03/05 0043
Expense 0002 appl exps 08/23/05 08/23/05 004B
ScientificCalc 0001 appl sciC 03/14/05 03/14/05 004B
Carbs 0001 appm BfLn 07/06/05 07/06/05 0143
AS_FirstAid 0001 appm BfLn 06/20/05 08/05/05 0043
AS_Knowledge 0004 appm BfLn 07/19/05 07/19/05 0143
BFViewer 018C appm BfVr 09/07/05 09/07/05 004B
ContactsBDIndex-PAdd 0000 bday PAdd 10/23/07 10/23/07 0100
SPVolumeCache-SpPh.dat 0000 cach SpPh 10/23/07 10/23/07 0000
AddressCitiesDB 0000 city addr 10/23/07 10/23/07 0108
AddressCompaniesDB 0000 cmpy addr 10/23/07 10/23/07 0108
AddressCountriesDB 0000 cnty addr 10/23/07 10/23/07 0108
CalendarLocationsDB-PDat 0000 lcns PDat 10/23/07 10/23/07 0108
ZLib 0001 libr ZLib 03/07/03 03/07/03 0043
psysLaunchDB 0001 lnch psys 10/23/07 10/23/07 0068
Graffiti ShortCuts 0001 macr graf 06/15/01 10/23/07 0009
NVInfo-psys 0000 nvif psys 10/23/07 10/23/07 0001
CHESS_enUS 0002 ovly BfCh 08/15/05 08/15/05 0843
CheckSplit_enUS 0003 ovly BfCs 07/25/05 07/25/05 094B
AddItVault_enUS 0047 ovly Bmsy 08/15/05 08/15/05 0943
Tutorial_enUS 0001 ovly HsTM 06/20/05 08/24/05 0843
Solitaire_enUS 0001 ovly Pat2 07/28/05 09/07/05 0843
SplashPhoto_enUS 0001 ovly SpPh 08/22/05 08/22/05 0843
Expense_enUS 0002 ovly exps 08/23/05 08/23/05 084B
ScientificCalc_enUS 0001 ovly sciC 03/14/05 03/14/05 084B
Unsaved Preferences 0000 pref psys 10/23/07 10/23/07 0001
Net Prefs 0000 rsrc netl 10/23/07 10/23/07 0001
System MIDI Sounds 0001 smfr psys 10/23/07 10/23/07 0008
Saved Preferences 0000 sprf psys 10/23/07 10/23/07 0009
AddressStatesDB 0000 stat addr 10/23/07 10/23/07 0108
BGCache-PDat 0000 strm PDat 10/23/07 10/23/07 0080
BGCache-lnch 0000 strm lnch 10/23/07 10/23/07 0080
AddressTitlesDB 0000 titl addr 10/23/07 10/23/07 0108
Loading “Conflict Notifier”
Notifier 'Conduit Conflict Notifier' version 1.0.0
Notifier Conduit Conflict Notifier OK
Loading “Install Conduit”
Conduit “Install” version 3.0.0
Sync type is Fast
Installed ADD051SData
Installed ADD051VData
Installed CalendarLocationsDB-PDat
Installed ConnectionMgr50DB
Installed Graffiti ShortCuts
Installed locLCusLocationDB
Installed locLDefLocationDB
Installed psysLaunchDB
Installed Queries
Installed Saved Preferences
Installed System MIDI Sounds
OK Install
Loading “Apple”
Conduit “iSync Conduit” version 3.0.0
Sync type is Fast
iSync Conduit starting 10/23/07 22:19:52
Setting Hello Response, type is PalmSyncTypeReset, language is 0 (BladeLanguageEnglish) 10/23/07 22:19:59
Warning: SyncCloseDB returned 16385 for database DatebookDB 10/23/07 23:35:28
Warning:SyncOpenDB returned 16385 for database ToDoDB, cannot process request 10/23/07 23:35:50
Warning: couldn't open requested database for add record request for id 0 and creator 746f646f 10/23/07 23:35:50
iSync Conduit: Sending Error Response 7: iSync Conduit: Error occured adding record 10/23/07 23:35:50
OK iSync Conduit
HotSync Canceled 10/23/07 23:38:40
-------------------------------------------------------------------------------- --Michael, thanks for your prompt reply, and for pointing me to that thread. to make my long story short:
1) i went into hotsync conduit manager and set ALL of them to "do nothing" except for isync (set to enable isync for this device), backup (set to backup) and install (set to install files)
2) did a hard reset of the palm device
unfortunately sync failed again, here is the tail end of the hotsync log:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Loading “Conflict Notifier”
Notifier 'Conduit Conflict Notifier' version 1.0.0
Notifier Conduit Conflict Notifier OK
Loading “Install Conduit”
Conduit “Install” version 3.0.0
Sync type is Install/Restore
OK Install
Loading “Apple”
Conduit “iSync Conduit” version 3.0.0
Sync type is Slow
iSync Conduit starting 10/24/07 17:19:00
Setting Hello Response, type is PalmSyncTypeReset, language is 0 (BladeLanguageEnglish) 10/24/07 17:19:06
Warning: SyncCloseDB returned 16385 for database DatebookDB 10/24/07 18:29:51
Warning:SyncOpenDB returned 16401 for database ToDoDB, cannot process request 10/24/07 18:30:25
Warning: couldn't open requested database for add record request for id 0 and creator 746f646f 10/24/07 18:30:25
iSync Conduit: Sending Error Response 7: iSync Conduit: Error occured adding record 10/24/07 18:30:25
OK iSync Conduit
HotSync Canceled 10/24/07 19:16:02
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
again though, it does look like all the ical and address book data did in fact make it onto the palm device, but the sync just dies at the end. i don't think the ical size is the problem, same stats as in my original message, 19.5M of 24.6M free on the palm.
somewhere in my many sync / reset / sync / reset attempts, my /HD/Library/Application Support/Palm HotSync/Conduits folder got empty. so i can't follow your advice of moving conduits to the disabled folder, because neither the conduits nor the disabled folder even exist anymore! is that of any concern? -
TOSHIBA EQUIUM A110 PSAB2E-008006AV.
I have just replaced two memory modules both 516 mb with a 2gb module. Everything works fine. However, I have heard varying comments about maximum memory; I have been told that the maximum is 2gb, but I have heard elsewhere, that the laptop will take 3gb; if this is so, can I reinsert one of the 516 modules.Max 4gig total. 2gig max per slot. If you are running a 32bit OS then your effective limit is 3gig. You can use one of the 512meg sticks with the 2gig stick as long as the 2gig is within spec (some of the cheaper ones aren't).
If you don't post your COMPLETE model number it's very difficult to assist you. Please try to post in complete sentences with punctuation, capitals, and correct spelling. Toshiba does NOT provide any direct support in these forums. All support is User to User in their spare time. -
Calling Z function module from BSP page
hi,
i am calling a z function module from BSP application ROS_SELF_REG ,The z function module is inside a z function group,It does not give any sytnax error..but while running BSP application ,it is going into dump saying that Z function module is not found..Any idea why this is happening???Hi,
Check whether the Z function module is spelled correctly. Also try activating the whole function group and function module in se80 transaction.
Check whether the BSP application is calling the Z FM from the correct server/client where it is available.
Regards,
Harish -
Showing error in read_text function module
- Forcast ID Number: Read function module READ_TEXT where ID = Z001, Object = VBBK to get the Forcast ID. Display it on the output.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'Z001'
LANGUAGE =
NAME =
OBJECT = 'VBBK'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
LINES =
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
its showing error---unable to interprete OBJECT.possible cases of spelling or comma errorLook at the Bold ones ... U need to give values for
language and name
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'Z001'
LANGUAGE = ' '
NAME = ' '
OBJECT = 'VBBK'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
LINES =
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
What are the Infotypes required for integrating Payroll for Latin America?
Hi,
Can anyone tell me the Country Specific Infotypes for Implementing Payroll for Latin America? Also Please let me know the Infotypes required for integrating FI & CO modules with Payroll.Hi,
Can anyone tell me the Country Specific Infotypes for Implementing Payroll for Latin America? Also Please let me know the Infotypes required for integrating FI & CO modules with Payroll. Also I need to implement the Payroll for Latin America including ESS and MSS. How do I Integrate?
Regards,
Kavitha -
Adapter module Transform.Class error
Hello,
I have a sender jdbc adapter which is calling the xslt transform class with no errors but its obvious that the xsl is not being invoked as my xml is not transformed, but I don't see any error in the audit log. When I purposely use a non existent file path/file name in XSLTConversion.XSLTFileName I expect to get an error in the message monitor audit log but I do not. Neither default.trace or xi.*.log provide any errors regarding the xslt transformation in the adapter module. The audit log actually indicates: "Transform: successfully transformed" Below is my adapter module configuration. Can anyone point me to a log file that might contain adapter module errors or notice any problem with this module config?
localejbs/AF_Modules/MessageTransformBean, Local, XSLT
CallSapAdapter, Local, call_AF_MS
XSLT, Transform.class, com.sap.aii.messaging.adapter.XSLTConversion
XSLT, XSLTConversion.XSLTFileName, /usr/sap/XIS/DVEBMGS00/j2ee/cluster/server0/tmgxsls/GL_split.xsl
Thanks in advance,
DaveHi
Check for correct spelling:
localejbs/AF_modules/MessageTransformBean
Check the parameters for trailing spaces:
'com.sap.aii.messaging.adapter.XSLTConversion_'
Check the path:
Windows: C:\...
Unix: /usr/...
and
Check the adit log of the message monitoring in the RWB for entries according to the module....
Trc or trace files on visual administrator is the closest answer from my part.
please refer,
/people/michal.krawczyk2/blog/2005/09/07/xi-why-dont-start-searching-for-all-errors-from-one-place
regards,
vasanth -
Dear Experts,
I have created EAR file using the NWDS tool.( the blog: " How to Create Modules fot the J2EE Adapter Engine".)
I have also deployed the EAR file usinf Visual Administrator.
When I am sending the files to a folder then the error is coming as "Exception caught with cause com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at localebjs, the whole lookup name is localebjs/CreateAttachment.
Attempt to process file failed with com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at localebjs, the whole lookup name is localebjs/CreateAttachment."
Kindly help me.
Thanks in advance.Check ejb-j2ee-engine.xml file for the Whats the EJB name and JNDI name any spelling mistakes can also create this error.
Hi,
Both the EJB name and JNDI name is same.
In JAVA, the code is like this..
@ejbHome <{com.sap.aii.af.mp.module.ModuleHome}>
@ejbLocal <{com.sap.aii.af.mp.module.ModuleLocal}>
@ejbLocalHome <{com.sap.aii.af.mp.module.ModuleLocalHome}>
@ejbRemote <{com.sap.aii.af.mp.module.ModuleRemote}>
@stateless
and ejb-j2ee-engine as
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">
<ejb-j2ee-engine>
<enterprise-beans>
<enterprise-bean>
<ejb-name>CreateAttachment</ejb-name>
<jndi-name>CreateAttachment</jndi-name>
<session-props/>
</enterprise-bean>
<enterprise-bean>
<ejb-name>AdapterModuleBean</ejb-name>
<session-props/>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
Kindly help me.
pls, tell me where should I check the error.
Edited by: Amit Mandal on Oct 23, 2008 8:55 AM -
Module Function Name Resolution - Issues with DefaultCommandPrefix
Just getting started on module development, running PS4, and I've run into an... inconsistency... that I'm trying to understand. I've got two test functions, Get-Something and Set-Something in a script module. In my manifest file I specify a DefaultCommandPrefix
of 'Test'.
My issue is the function name resolution doesn't result in an executable result if you leave PowerShell up to it's own process.
To begin with I closed all sessions and deleted all files in the CommandAnalysis directory. After starting a session I waited for the CommandAnalysis cache to populate. Then I ran a series of test commands to illustrate how, most of the time, the function
name PowerShell registers with tab completion can't be executed because it lacks the 'Test' prefix. Even worse, much of the time tab completion won't recognize the correct (i.e., with prefix) name of the function and honor tab completion for it.
Having just learned of the CommandAnalysis cache I assumed I would see it change as PowerShell 'learned' more about the module because the name resolves differently over time. I've included three files at the end of this post, the module code (ModuleTest.psm1),
the manifest (ModuleTest.psd1) and the capture of output to the PowerShell session (ModuleTest.txt). I've tried to include the times I used <tab> and <ret> for tab completion and execution as well as (comments in parenthesis for things I did like
starting a new session and checking the CommandAnalysis cache for changes).
An example is, when first starting a session typing 'get-som<tab>' will resolve to 'Get-Something' (prefix 'Test' missing) and typing 'get-test<tab>' won't resolve to 'Get-TestSomething'. Try to execute the 'Get-Something' from tab completion
and you'll get the 'name not recognized, blah, blah'.
Now if you type 'get-som<tab>' PowerShell will resolve to 'ModuleTest\Get-Something' - looks promising... but no. Try to execute the 'ModuleTest\Get-Something' from tab completion and you'll still get the 'name not recognized, blah, blah'.
Even though the same key strokes resolved differently there were no changes made to the CommandAnalysis cache so I'm lost on why it produces two different (though equally useless) results.
Manually importing the module and sometimes running Get-Command -Module ModuleTest will make tab completion of the function names behave correctly. Is this a known issue with using DefaultCommandPrefix in script modules or is there something I need to include
in the manifest to enforce strict name recognition (including the prefix)?
<ModuleTest.psm1>
function Get-Something
Write-Host "Get-Something Executed"
function Set-Something
Write-Host "Set-Something Executed"
<ModuleTest.psd1>
# Script module or binary module file associated with this manifest
ModuleToProcess = 'ModuleTest.psm1'
# Version number of this module.
ModuleVersion = '1.0.0.0'
# ID used to uniquely identify this module
GUID = '241877ff-64be-40c8-a603-8d5acf7a48d8'
# Author of this module
Author = 'wb3'
# Company or vendor of this module
CompanyName = ''
# Copyright statement for this module
Copyright = '(c) 2015. All rights reserved.'
# Description of the functionality provided by this module
Description = 'Module description'
# Minimum version of the Windows PowerShell engine required by this module
PowerShellVersion = '2.0'
# Name of the Windows PowerShell host required by this module
PowerShellHostName = ''
# Minimum version of the Windows PowerShell host required by this module
PowerShellHostVersion = ''
# Minimum version of the .NET Framework required by this module
DotNetFrameworkVersion = '2.0'
# Minimum version of the common language runtime (CLR) required by this module
CLRVersion = '2.0.50727'
# Processor architecture (None, X86, Amd64, IA64) required by this module
ProcessorArchitecture = 'None'
# Modules that must be imported into the global environment prior to importing
# this module
RequiredModules = @()
# Assemblies that must be loaded prior to importing this module
RequiredAssemblies = @()
# Script files (.ps1) that are run in the caller's environment prior to
# importing this module
ScriptsToProcess = @()
# Type files (.ps1xml) to be loaded when importing this module
TypesToProcess = @()
# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = @()
# Modules to import as nested modules of the module specified in
# ModuleToProcess
NestedModules = @()
# Default command prefix
DefaultCommandPrefix = 'Test'
# Functions to export from this module
FunctionsToExport = '*'
# Cmdlets to export from this module
CmdletsToExport = '*'
# Variables to export from this module
VariablesToExport = '*'
# Aliases to export from this module
AliasesToExport = '*'
# List of all modules packaged with this module
ModuleList = @()
# List of all files packaged with this module
FileList = @()
# Private data to pass to the module specified in ModuleToProcess
PrivateData = ''
<ModuleTest.output>
PS C:\Scripts\PowerShell> Get-ChildItem -Path 'C:\Program Files\WindowsPowerShell\Modules' -Recurse<ret>
Directory: C:\Program Files\WindowsPowerShell\Modules
Mode LastWriteTime Length Name
d---- 3/5/2015 9:06 AM ModuleTest
Directory: C:\Program Files\WindowsPowerShell\Modules\ModuleTest
Mode LastWriteTime Length Name
-a--- 3/5/2015 8:50 AM 2907 ModuleTest.psd1
-a--- 3/5/2015 9:01 AM 140 ModuleTest.psm1
PS C:\Scripts\PowerShell> Get-Module -ListAvailable<ret>
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
Script 1.0.0.0 ModuleTest {Get-Something, Set-Something}
PS C:\Scripts\PowerShell> get-som<tab>
PS C:\Scripts\PowerShell> Get-Something<ret>
Get-Something : The term 'Get-Something' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-Something
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Something:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
(No change in CommandAnalysis cache)
PS C:\Scripts\PowerShell> get-som<tab>
PS C:\Scripts\PowerShell> ModuleTest\Get-Something<ret>
ModuleTest\Get-Something : The term 'ModuleTest\Get-Something' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:1
+ ModuleTest\Get-Something
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (ModuleTest\Get-Something:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
(No change in CommandAnalysis cache)
PS C:\Scripts\PowerShell> get-tes<tab>
PS C:\Scripts\PowerShell> Get-TestSomething<ret>
Get-Something Executed
(New Session)
(No change in CommandAnalysis cache)
PS C:\Scripts\PowerShell> get-tes<tab><ret>
get-tes : The term 'get-tes' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ get-tes
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (get-tes:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Scripts\PowerShell> Import-Module ModuleTest<ret>
(No change in CommandAnalysis cache)
PS C:\Scripts\PowerShell> get-tes<tab><ret>
PS C:\Scripts\PowerShell> Get-TestSomething
Get-Something Executed
(New Session)
(No change in CommandAnalysis cache)
PS C:\Scripts\PowerShell> get-tes<tab><ret>
get-tes : The term 'get-tes' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ get-tes
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (get-tes:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Scripts\PowerShell> Get-Command -Module ModuleTest<ret>
CommandType Name
ModuleName
Function Get-TestSomething
ModuleTest
Function Set-TestSomething
ModuleTest
(No change in CommandAnalysis cache)
PS C:\Scripts\PowerShell> get-tes<tab>
PS C:\Scripts\PowerShell> Get-TestSomething<ret>
Get-Something Executed
PS C:\Scripts\PowerShell> moduletest\get<tab><ret>
PS C:\Scripts\PowerShell> Get-TestSomething<ret>
Get-Something Executed
William Busby, PMPHi William,
yes, that's something you'll either have to do the hard way or live with admin confusion.
If you're using Sapien's PowerShell Studio as an Editor (hint: Usually a great idea), you can very easily rename a function, even in a multi-file module project, by rightcklicking on the function-name and selecting "rename".
Alternatively you can do a bulk rename with Powershell:
Get all functions in your module (Load it and check exportedcommands)
loop over each function-name
calculate new name
search your entire project for all references and replace them.
Let me see ...
function Rename-ModulePrefix
[CmdletBinding()]
Param (
[Parameter(Position = 0, Mandatory = $true)]
[string]
$ModuleName,
[Parameter(Position = 1, Mandatory = $true)]
[string]
$OldPrefix,
[Parameter(Position = 2, Mandatory = $true)]
[string]
$NewPrefix,
[Parameter(Position = 3)]
[string]
$Path
# Catch all typos
Import-Module $ModuleName -ErrorAction 'Stop'
# Get root path if not manually passed
if (-not $PSBoundParameters["Path"])
$Path = (Get-Module $ModuleName).Path
# Get module files
$Files = Get-ChildItem -Path $path -Recurse -Include "*.ps1", "*.psm1", "*.psd1"
# Iterate over each file
foreach ($file in $Files)
# Null variable in case you get an empty file somewhere and run this from Win 7
$data = $null
# Get Content of file
$data = Get-Content $file
# Replace strings
foreach ($c in (Get-Module $ModuleName).ExportedCommands)
$newName = $c.Name -replace $OldPrefix, $NewPrefix
$data = $data | ForEach-Object { $_ -replace $c.Name, $newName }
# Write back to file
$data | Set-Content $file
While I didn't proof it, in theory this should do it (Make a backup before running it :) ).
Cheers,
Fred
There's no place like 127.0.0.1 -
Hi,
i had configured a JDBC to SOAP scenario and the SOAP adapter has the Module (localejbs/ReplaceXMLTag)
now the issue is while execute teh scenario, it works fine at DEV but shows error at QA as given below
"Delivery exception: Object not found in Lookup of Replace XML tag"
please let me know how to resolve this issue.
Thanks in advance....> i had configured a JDBC to SOAP scenario and the SOAP adapter has the Module (localejbs/ReplaceXMLTag)
> "Delivery exception: Object not found in Lookup of Replace XML tag"
Have you spelled this correct? The name in the error message seems to be different from th module name. -
Function Module for search help Exit
How to create a function Module for search help exits?
please explain in details with step by step process.Hi,
How to create a function Module for search help exits?
function module for search help F4IF_SHLP_EXIT_EXAMPLE
dynamic search help use 'F4IF_INT_TABLE_VALUE_REQUEST'
please check out the link below it will help you
A repository object maintained in the ABAP Dictionary. It supplies input fields on Dynpros with single- or multi-column input helps. Search helps can be linked in the Dictionary with components from structures, data elements, and check tables. A search help enables you to search for entry values with assigned data, without you having to know the exact spelling of the value.
http://help.sap.com/saphelp_46c/helpdata/EN/cf/21ee52446011d189700000e8322d00/content.htm
please explain in details with step by step process.
create a search help exit:
1. create an fm with this interface:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCR_TAB_T
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR_T
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
put this logic in it:
Delete duplicate filter logic.
This logic only needs to apply at the 'DISP' event - which is just
before the hit list is displayed
if callcontrol-step = 'DISP'.
delete adjacent duplicates from record_tab.
endif.
2. edit your search help in se11 and enter the name of the above search help exit fm
check this sample code..for dynamic search help
REPORT ZTEST_F4HELP .
*---Report with selection screen and to display the list of
possible entries for field 'B' as per the value in field 'A'.
parameters: p_vbeln type vbak-vbeln,
p_posnr type vbap-posnr.
at selection-screen on value-request for p_posnr.
data: begin of help_item occurs 0,
posnr type vbap-posnr,
matnr type vbap-matnr,
arktx type vbap-arktx,
end of help_item.
data: dynfields type table of dynpread with header line.
dynfields-fieldname = 'P_VBELN'.
append dynfields.
call function 'DYNP_VALUES_READ'
exporting
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
tables
dynpfields = dynfields
exceptions
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
others = 11.
read table dynfields with key fieldname = 'P_VBELN'.
p_vbeln = dynfields-fieldvalue.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = p_vbeln
importing
output = p_vbeln.
select posnr matnr arktx into table help_item
from vbap
where vbeln = p_vbeln.
call function 'F4IF_INT_TABLE_VALUE_REQUEST'
exporting
retfield = 'POSNR'
dynprofield = 'P_POSNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
value_org = 'S'
tables
value_tab = help_item.
also check this link it will help you
/message/3854825#3854825 [original link is broken]
*********please reward points if the information is helpful to you************* -
Function Module to convert amount to amount in words
Dear Guru ,
I want to know is there any sap standard Function Module to convert amount value to amount in words
Thanks & RegardsHi..
Use FM SPELL_AMOUNT.
This function module converts an amount or number into words. It can be used as follows:
Convert a number into words
To do this, the transfer parameters LANGUAGE and AMOUNT have to be entered.
Convert an amount into words
To do this, the fields LANGUAGE, CURRENCY, and AMOUNT have to be entered.
Program RF_SPELL contains a sample call of the function module. You can use it for test purposes.
REPORT ZSPELL.
TABLES SPELL.
DATA : T_SPELL LIKE SPELL OCCURS 0 WITH HEADER LINE.
DATA : PAMOUNT LIKE SPELL-NUMBER VALUE '1234510'.
SY-TITLE = 'SPELLING NUMBER'.
PERFORM SPELL_AMOUNT USING PAMOUNT 'USD'.
WRITE: 'NUMBERS', T_SPELL-WORD, 'DECIMALS ', T_SPELL-DECWORD.
FORM SPELL_AMOUNT USING PWRBTR PWAERS.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = PAMOUNT
CURRENCY = PWAERS
FILLER = SPACE
LANGUAGE = 'E'
IMPORTING
IN_WORDS = T_SPELL
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 2
OTHERS = 3.
ENDFORM. " SPELL_AMOUNT
I hope it helps.
Reward pts if helpful
Regards
- Rishika Bawa -
when switching windows regional settings to Arabic, numbers are still shown in Latin characters, unlike other browsers (ex IE).
== This happened ==
Every time Firefox opened
== all firefox versionsSee "bidi.numeral" in http://kb.mozillazine.org/About:config_entries#Bidi.
See also http://mxr.mozilla.org/mozilla1.9.2/source/modules/libpref/src/init/all.js#1058
To open the ''about:config'' page, type '''about:config''' in the location (address) bar and press the Enter key, just like you type the url of a website to open a website.
If you see a warning then you can confirm that you want to access that page. -
[python] setting a variable in a loaded module from the main script
Hi,
I have have two python scripts, one generally controlling my desktop wallpaper, the other downloads the APOD picture from the net and sets it as my wallpaper.
At the moment I can get the wallpaper script to load the apod script as a module to use its functionality.
The problem comes when I try to get the module to recognise variables set from the parent script:
I have both scripts using the variable 'verbose' to control how much output is printed, (which can be set from the command line options).
How do I get the 'verbose' variable in the imported module to be the same as the variable set by the script?
I can get it into an imported function using a keyword assignment when called, 'download(verbose=options.verbose)', but this is forgotten when other functions are called.
I have also tried making it a global variable.
I assume it is because I am importing the module and setting the default value before the main script sets its value, but I cant see a way round this.
Any ideas?
Many thanks,
Drewsimplicity:
test1.py
#!/usr/bin/python3
__version__ = 1
from optparse import OptionParser, OptionGroup, SUPPRESS_HELP
import test2
def_msg = 3
def function1(msg=def_msg):
print('1 message level here is {0}' .format(msg))
def function2():
print('2 message level here is {0}' .format(msg))
def function3(msg=def_msg):
msg = def_msg
print('3 message level here is {0}' .format(msg))
def function4():
print('4 message level here is {0}' .format(msg))
def main(msg=def_msg):
print('m message level here is {0}' .format(msg))
function1(msg=msg)
function2()
function3()
function4()
test2.main(msg=msg)
function2()
if __name__ == "__main__":
parser = OptionParser(usage = "usage: %prog [options] command", version="%prog {0}" .format(__version__),
description = "Test script 1.")
parser.set_defaults()
standard = OptionGroup(parser, "Standard Options")
## Standard Options
standard.add_option("-q", "--quiet",
action="store_true", dest="quiet", default=False, #help=SUPPRESS_HELP)
help="only display warnings and errors")
standard.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=False, #help=SUPPRESS_HELP)
help="display all output")
standard.add_option("--debug",
action="store_true", dest="debug", default=False, #help=SUPPRESS_HELP)
help="debug mode: detailed output of commands")
standard.add_option("--really-quiet",
action="store_true", dest="reallyquiet", default=False, help=SUPPRESS_HELP)
#help="only display errors")
standard.add_option("--silent",
action="store_true", dest="silent", default=False, help=SUPPRESS_HELP)
#help="don't display any output")
parser.add_option_group(standard)
(options, args) = parser.parse_args()
## message level
if options.debug == True:
msg = 5
elif options.verbose == True:
msg = 4
elif options.quiet == True:
msg = 2
elif options.reallyquiet == True:
msg = 1
elif options.silent == True:
msg = 0
else:
msg = 3
main(msg=msg)
test2.py
#!/usr/bin/python3
__version__ = 1
from optparse import OptionParser, OptionGroup, SUPPRESS_HELP
#from test1 import msg
def_msg = 3
#msg = 3
def function1(msg=def_msg):
print('1 message level here is {0}' .format(msg))
def function2(msg=def_msg):
print('2 message level here is {0}' .format(msg))
def function3():
print('3 message level here is {0}' .format(msg))
def main(msg=def_msg):
#from test1 import msg
#import test1
#msg = test1.msg
print('m message level here is {0}' .format(msg))
function1(msg=msg)
function2()
function3()
if __name__ == "__main__":
parser = OptionParser(usage = "usage: %prog [options] command", version="%prog {0}" .format(__version__),
description = "Test script 2.")
parser.set_defaults()
standard = OptionGroup(parser, "Standard Options")
## Standard Options
standard.add_option("-q", "--quiet",
action="store_true", dest="quiet", default=False, #help=SUPPRESS_HELP)
help="only display warnings and errors")
standard.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=False, #help=SUPPRESS_HELP)
help="display all output")
standard.add_option("--debug",
action="store_true", dest="debug", default=False, #help=SUPPRESS_HELP)
help="debug mode: detailed output of commands")
standard.add_option("--really-quiet",
action="store_true", dest="reallyquiet", default=False, help=SUPPRESS_HELP)
#help="only display errors")
standard.add_option("--silent",
action="store_true", dest="silent", default=False, help=SUPPRESS_HELP)
#help="don't display any output")
parser.add_option_group(standard)
(options, args) = parser.parse_args()
## message level
if options.debug == True:
msg = 5
elif options.verbose == True:
msg = 4
elif options.quiet == True:
msg = 2
elif options.reallyquiet == True:
msg = 1
elif options.silent == True:
msg = 0
else:
msg = 3
main(msg=msg)
else:
msg = def_msg
I think I understand why it gives the results it does when run as 'test1.py -v'
I was just wondering if there was an easier way to get the second script to take and remember the variable without having to write variable=value into the function call every single time? However this is the only way I have found so far.
The actual code:
wallpaper.py:
#!/usr/bin/python3
#Filename: wallpaper.py
__version__ = '6.2.0'
import os, sys
from optparse import OptionParser, OptionGroup, SUPPRESS_HELP
#import warnings
import random
#import apod
##### CONFIG #####
## Global Variables
root = '/home/wallpaper'
feh_wallpaper_file = os.path.expanduser('~/.fehbg')
filter_file = os.path.expanduser('~/.config/openbox/wallpaper/mask')
config_path = os.path.expanduser('~/.config/openbox/wallpaper')
list_default = 'default-list'
list_alt = 'alt-list'
menu_default = 'menu-folders'
menu_alt = 'alt-menu'
lockfile='/tmp/wallpaper.lock'
valid_list_list = 'alt-list', 'default-list'
def_msg = 3
##### LOCK v2.2 #####
def LockScript(fun, lock=lockfile, msg=def_msg):
"""Locks the script before starting a function."""
if msg >= 5:
print('Lock :: Locking Script')
from os import O_CREAT, O_EXCL
try:
fd = os.open(lock, O_CREAT+O_EXCL)
if msg >= 5:
print('Lock :: created lock file')
except OSError:
if msg >= 1:
print('Error :: Already running function {0}...' .format(fun))
sys.exit(1)
try:
fun(msg=msg)
finally:
try:
os.remove(lock)
if msg >= 6:
print('Lock :: Removed Lock File')
except:
if msg >= 1:
print('Lock :: Error :: Lockfile missing')
##### CURRENT INFO #####
def get_filter(msg=def_msg):
"""Retrieves the filter."""
f = open(filter_file, 'r')
i = f.read()
f.close()
if msg >= 6:
print('Got Filter :: {0}' .format(i))
return i
def get_info(msg=def_msg):
"""Returns the path and name of the current wallpaper."""
with open(feh_wallpaper_file, 'r') as f:
a = f.read()
b = a[15:-1]
f.close()
name = os.path.basename(b)
try:
import apod
if name == 'apod':
path = os.path.join(apod.archive_folder, apod.thisyear)
w = os.listdir(path)
w.sort()
wnum = len(w) -1
name = w[wnum]
else:
path = os.path.dirname(b)
except:
path = os.path.dirname(b)
if msg >= 5:
print('current wallpaper :: {0} {1}' .format(path, name))
return path, name
def get_next(c, z, msg=def_msg):
"""Gets the next number in the sequence of length z."""
if c == (len(z) - 1):
n = 0
else:
n = c + 1
if msg >= 6:
print('next number is {0}' .format(n))
return n
def get_prev(c, z, msg=def_msg):
"""Gets the previous number in the sequence of length z."""
if c == 0:
p = (len(z) - 1)
else:
p = c - 1
if msg >= 6:
print('previous number is {0}' .format(p))
return p
def current_wallpaper_info(msg=def_msg):
"""Print the details of the current wallpaper."""
name = get_info(msg=msg)[1]
path = get_info(msg=msg)[0]
folder = os.path.basename(path)
mask = get_filter(msg=msg)
try:
import apod
if path.startswith(apod.archive_folder) or name.startswith('APOD'):
title = apod.get_name(fname=name, msg=msg)
print('currently the wallpaper is "{0}", {1}' .format(title, name))
elif not mask == '':
print('currently the wallpaper is {0} from folder {1} using mask {2}' .format(name, folder, mask))
else:
print('currently the wallpaper is {0} from folder {1}' .format(name, folder))
except:
print('currently the wallpaper is {0} from folder {1}' .format(name, folder))
##### SET WALLPAPER FUNCTIONS #####
def set_filter(i=None, msg=def_msg, mask_file=filter_file):
"""Sets the filter."""
if test:
f = open(mask_file, 'r')
else:
f = open(mask_file, 'w')
if i == None:
if msg >= 5:
print('clearing filter')
if test:
print('exec :: Clear filter')
else:
f.write('')
else:
if msg >= 4:
print('Setting filter as "{0}"' .format(i))
if test:
print('exec :: Writing filter as :: "{0}"' .format(i))
else:
f.write(i)
f.close()
def set_wallpaper(name, path_in=get_info()[0], msg=def_msg):
"""Set the wallpaper."""
spath = path_in.split(':')
path = spath[0]
try:
mask = spath[1]
set_filter(mask, msg=msg)
except:
pass
full = os.path.join(path, name)
if msg >= 4:
print("setting {0} as wallpaper" .format(name))
if test:
print("exec :: feh --bg-scale {0}" .format(full))
else:
os.system("feh --bg-scale {0}" .format(full))
#def set_default(d=default_file):
# """Sets the default walllpaper."""
# set_wallpaper(d[1], d[0])
def set_wallpaper_last(msg=def_msg):
"""Set the wallpaper as the last image."""
## alternativly use "eval `cat ~/.fehbg`"
full = os.path.join(get_info()[0], get_info()[1])
if msg >= 4:
print("setting {0} as wallpaper" .format(full))
if test:
print("exec :: feh --bg-scale {0}" .format(full))
else:
os.system("feh --bg-scale {0}" .format(full))
def change_folder(folder0, mask=None, msg=def_msg):
"""Change Wallpaper folder (optional filter) relative from root dir."""
folder_split = folder0.split(':')
folder = folder_split[0]
path = os.path.join(root, folder)
if not os.path.exists(path): # Path does not exist
if msg >= 1:
print('Fatal Error :: path does not exist')
print('avaliable folders are {0}' .format(avaliable_folders()))
sys.exit()
if msg >= 4:
print('changing folder to {0}' .format(folder))
f1 = os.listdir(path)
try:
if folder_split[1]:
mask = folder_split[1]
f2 = []
for i in f1:
if i.find(mask) > -1:
f2.append(i)
f = f2
if len(f) == 0:
if msg >= 2:
print('Warning :: invalid filter')
raise
set_filter(mask, msg=msg)
else: # print('null mask')
if msg >= 2:
print('Warning :: null filter')
raise
except:
if msg >= 5:
print('No filter used, clearing')
set_filter(msg=msg)
f = f1
if len(f) == 0:
if msg >= 1:
print('Fatal Error :: no files in path')
sys.exit()
r = random.randrange(0,len(f))
if msg >= 5:
print('chosing random number:: {0}' .format(r))
set_wallpaper(f[r], path, msg=msg)
def avaliable_folders(r=root, msg=def_msg):
"""Returns a list of avaliable folders in the root wallpaper directory."""
allfolders = os.listdir(r)
folders = []
for f in allfolders:
if not f.startswith("."):
folders.append(f)
return folders
##### DEFAULT / ALT SEQUENCE LISTS #####
def strip_opt(p):
#q1 = p.replace(' ','')
#q2 = q1.replace('\t','')
#q3 = q2.replace('\n','')
q = p.replace(' ','').replace('\t','').replace('\n','')
return q
def check_list(l, path=config_path, dl=list_default, al=list_alt, msg=def_msg, returnF=False):
"""Checks to see (and returns) valid path to list."""
if l == 'default' or l == 'def' or l == None :
if msg >= 4:
print('using default list')
return os.path.join(path, dl)
elif l == 'alt':
if msg >= 4:
print('using alternative list')
return os.path.join(path, al)
else:
try:
if not os.path.exists(os.path.join(path, l)):
if msg >= 1:
print('Error :: list does not exist')
raise
elif not os.path.isfile(os.path.join(path, l)):
if msg >= 1:
print('Error :: list not a file')
raise
else:
try:
c = valid_list_list.index(l)
if msg >= 6:
print('list name has been validated')
except:
if msg >= 2:
print('Warnimg :: list used has not been vaildated by script')
print('Warnimg :: if valid; add to the list of valid lists')
if msg >= 5:
print('path exists')
return os.path.join(path, l)
except:
if returnF == True:
return False
else:
if msg >= 2:
print('Warning :: using default list')
return os.path.join(config_path, dl)
def get_seq(msg=def_msg):
"""Returns the sequence of current wallpaper and curr position."""
mask = get_filter(msg=msg)
path = get_info(msg=msg)[0]
name = get_info(msg=msg)[1]
list1 = os.listdir(path)
if mask == '':
list0 = list1
else:
list2 = []
for i in list1:
if i.find(mask) > -1:
list2.append(i)
try: # check the filter is currently being used
num = list2.index(name)
#print('wallpaper in filtered list')
list0 = list2
except: # filter is out of date
if msg >= 5:
print('wallpaper not in filtered list... clearing')
list0 = list1
set_filter(msg=msg) # clear filter
list0.sort()
try: # needed if current wallpaper has been removed
num = list0.index(name)
if msg >= 5:
print('current wallpaper info ::')
print('name : {0}, number : {1}' .format(name, num))
return num, list0
except:
if msg >= 1:
print('Error :: get_seq :: Current wallpaper file missing :: name : {0}' .format(name))
return 0, list0
def list_sequence(com='next', seq=None, msg=def_msg):
cname = get_info(msg=msg)[1]
if seq == None:
list_dir = get_info(msg=msg)[0]
list_file = get_seq(msg=msg)[1]
if msg >= 4:
print('Changing wallpaper in sequence using current folder:mask')
else:
## Build a list.
a = check_list(seq, msg=msg)
list_dir = []
list_file = []
with open(a, 'r') as f:
for line in f:
i = line.split(',')
list_dir.append(os.path.join(root, strip_opt(i[0])))
list_file.append(strip_opt(i[1]))
set_filter(msg=msg) # flush mask if using a list
if msg >= 4:
print('Changing wallpaper in sequence using list file')
try:
c = list_file.index(cname)
if msg >= 5:
print('found current wallpaper in list at position {0}' .format(c))
if com == 'random':
n = random.randrange(0, len(list_file))
if msg >= 4:
print('setting random wallpaper from sequence')
elif com == 'prev':
n = get_prev(c, list_file)
if msg >= 4:
print('setting previous wallpaper in sequence')
elif com == 'next':
n = get_next(c, list_file)
if msg >= 4:
print('setting next wallpaper in sequence')
elif com == 'first':
if msg >= 4:
print('setting first wallpaper in sequence')
n = 0
else:
if msg >= 2:
print('Warning :: Unknown commmand')
n = 0
except:
if msg >= 4:
print('Warning :: not found current wallpaper in list / folder')
print('using first file in list / folder')
n = 0
if seq == None:
set_wallpaper(list_file[n], list_dir, msg=msg)
else:
set_wallpaper(list_file[n], list_dir[n], msg=msg)
def toggle_list(d='default', com='toggle', msg=def_msg):
"""Removes the current file from the list."""
a = check_list(d, msg=msg)
file_list = []
mod_file = []
cname = get_info(msg=msg)[1]
cpath = get_info(msg=msg)[0]
if os.path.dirname(cpath) == root:
cdir = os.path.basename(cpath)
elif os.path.dirname(os.path.dirname(cpath)) == root:
cdir = os.path.join(os.path.basename(os.path.dirname(cpath)), os.path.basename(cpath))
else:
print('error')
sys.exit()
cmask = get_filter(msg=msg)
if cmask == '':
cdmask = cdir
else:
cdmask = '{0}:{1}' .format(cdir, cmask)
in_list = False
with open(a) as f:
for line in f:
i = line.split(',')
if cname == strip_opt(i[1]):
if msg >= 6:
print('file in list')
in_list = True
else:
if msg >= 6:
print('file not in list')
file_list.append(strip_opt(i[1]))
mod_file.append('{0} , {1} \n' .format(strip_opt(i[0]), strip_opt(i[1])))
if in_list and com != 'rmfile' :
if msg >= 3:
print('Removed file from list')
if test:
for j in mod_file:
print('writing newline: {0}' .format(j))
else:
with open(a, 'w') as newf:
for j in mod_file:
newf.writelines(j)
elif not in_list and com != 'addfile':
mod_file.append('{0} , {1} \n' .format(cdmask, cname))
if msg >= 3:
print('Added wallpaper to list')
if test:
for j in mod_file:
print('writing newline: {0}' .format(j))
else:
with open(a, 'w') as newf:
for j in mod_file:
newf.writelines(j)
else:
if com == 'addfile':
if msg >= 2:
print('Warning :: File already in list')
elif com == 'rmfile':
if msg >= 2:
print('Warning :: File not in list')
else:
if msg >= 1:
print('Error :: UNKNOWN :: TOG LIST FUNCTION')
##### OPENBOX MENU #####
def gen_obmenu():
import oblib
for i in avaliable_folders():
oblib.item(i, 'wallpaper.py --silent --change {0}' .format(i))
def gen_obmenu_simple(name=None, i=None):
import oblib
if name == None:
oblib.pipe_start()
else:
oblib.menu_start(name, i)
oblib.item('Deafult', 'wallpaper.py --silent --default')
oblib.sep()
oblib.item('APOD', 'wallpaper.py --silent --apod')
oblib.item('APOD Save', 'wallpaper.py --silent --apod-save')
oblib.item('Random', 'wallpaper.py --silent --random')
if name == None:
oblib.pipe_end()
else:
oblib.menu_end()
def gen_obmenu_standard():
import oblib
oblib.pipe_start()
oblib.item('Deafult', 'wallpaper.py --silent --default')
oblib.sep()
oblib.item('APOD', 'wallpaper.py --silent --apod')
oblib.item('APOD Save', 'wallpaper.py --silent --apod-save')
oblib.sep()
oblib.menu_start('Change Set')
obmenu_change_set()
oblib.menu_end()
apod.obmenu_archive_folders(t='menu')
oblib.item('Toggle List', 'wallpaper.py --silent --toggle')
oblib.item('Random', 'wallpaper.py --silent --random')
oblib.pipe_end()
def gen_obmenu_alt():
import oblib
oblib.pipe_start()
oblib.sep('Alt Menu')
obmenu_change_set('alt')
oblib.pipe_end()
def obmenu_change_set(a='default', dl=menu_default, al=menu_alt):
import oblib
menu = check_list(a, dl=dl, al=al, returnF=True)
if menu != False:
f = open(menu, 'r')
for line in f:
i = line.split(',')
oblib.item(strip_opt(i[0]), 'wallpaper.py --change {0}' .format(strip_opt(i[1])))
f.close()
else:
for i in avaliable_folders():
oblib.item(i, 'wallpaper.py --change {0}' .format(i))
##### TEST FUNCTIONS #####
def parser_options():
print('Options are: {0}' .format(options))
print('Args are : {0}' .format(args))
print('Command is : {0}' .format(command))
def meta_info():
if options.meta_source == None:
print('No source specifieed')
else:
print('Script launched from source :: {0}' .format(options.meta_source))
def test_module():
#pass
#print(check_list(args[0]))
new_mod()
def new_mod():
#if path == None:
# print('No path specified, using pwd')
# path = os.curdir
#need_new_name = False
#print('Checking filenames in {0}' .format(path))
#for name in os.listdir(path):
# if name.find(" ") > -1:
# print("Warning :: > < in {0}" .format(name))
# need_new_name = True
# if name.find("'") > -1:
# print("Warning :: >'< in {0}" .format(name))
# need_new_name = True
# if name.find("&") > -1:
# print("Warning :: >&< in {0}" .format(name))
# need_new_name = True
# if name.find('"') > -1:
# print('Warning :: >"< in {0}' .format(name))
# need_new_name = True
# if need_new_name:
# new_name = name.replace('"', "").replace(" ", "_").replace("&", "and").replace("'", "")
# if re_name:
# print("Renaming to new name:: {0}" .format(new_name))
# os.rename(os.path.join(path, name), os.path.join(path, new_name))
# else:
# print("Suggested new name:: {0}" .format(new_name))
# need_new_name = False
pass
##### SANITISE WALLPAPER FILE NAMES #####
def sane_names(path=None, re_name=False, msg=def_msg):
"""Check file names in a path."""
if path == None:
print('No path specified, using pwd')
path = os.curdir
need_new_name = False
print('Checking filenames in {0}' .format(path))
for name in os.listdir(path):
if name.find(" ") > -1:
print("Warning :: > < in {0}" .format(name))
need_new_name = True
if name.find("'") > -1:
print("Warning :: >'< in {0}" .format(name))
need_new_name = True
if name.find("&") > -1:
print("Warning :: >&< in {0}" .format(name))
need_new_name = True
if name.find('"') > -1:
print('Warning :: >"< in {0}' .format(name))
need_new_name = True
if need_new_name:
new_name = name.replace('"', "").replace(" ", "_").replace("&", "and").replace("'", "")
if re_name:
print("Renaming to new name:: {0}" .format(new_name))
os.rename(os.path.join(path, name), os.path.join(path, new_name))
else:
print("Suggested new name:: {0}" .format(new_name))
need_new_name = False
print('File name check complete')
##### MAIN FUNCTION #####
def Main(msg=def_msg):
"""Chooses which command to run."""
if options.direction != None: # a dircetion has been set
list_sequence(com=options.direction, seq=options.whichlist, msg=msg)
elif command == 'last':
set_wallpaper_last(msg=msg)
elif command == 'info':
current_wallpaper_info(msg=msg)
## change folder
elif options.newfolder != None:
change_folder(options.newfolder, msg=msg)
## apod
elif command == 'apod':
#apod.download2(msg=msg, test=test)
try:
import apod
apod.download2(msg=msg, test=test)
except:
pass
elif command == 'apod-save':
#apod.apod_save('today', msg=msg, test=test)
try:
import apod
apod.apod_save('today', msg=msg, test=test)
except:
pass
## list management
elif options.toggle != None:
toggle_list(options.whichlist, com=options.toggle, msg=msg)
## openbox menu
elif command == 'obmenu':
gen_obmenu_standard()
elif command == 'obmenu-simple':
gen_obmenu_simple()
elif command == 'obmenu-alt':
gen_obmenu_alt()
## filename check
elif command == 'sane-name':
sane_names(path=options.sane_path, re_name=options.sane_rename, msg=msg)
## cycle
elif command == 'cycle':
print('ERROR :: function not implemented')
elif command == 'testmod':
test_module()
elif options.whichlist != None: # a list but no direction specified
list_sequence(seq=options.whichlist, msg=msg)
elif command == "TestNone":
print('Test mode null op[tion')
elif command == None: ## no command specified
pass
else:
print('Error :: no valid command found')
##### SCRIPT STARTUP #####
if __name__ == "__main__":
# def parse_change(option, opt_str, value, parser):
# parser.values.command = 'change'
# parser.values.newfolder = value
# def parse_smask(option, opt_str, value, parser):
# parser.values.command = 'set-mask'
# parser.values.mask = value
def parse_cycle(option, opt_str, value, parser):
parser.values.command = 'cycle'
parser.values.interval = value
def parse_msglevel(option, opt_str, value, parser):
parser.values.msg = value
# def parse_addfile(option, opt_str, value, parser):
# parser.values.command = 'addfile'
# parser.values.whichlist = value
# def parse_rmfile(option, opt_str, value, parser):
# parser.values.command = 'rmfile'
# parser.values.whichlist = value
parser = OptionParser(usage = "usage: %prog [options] command", version="%prog {0}" .format(__version__),
description = "Drews Script to the manage wallpapers using feh.")
parser.set_defaults(command=None, whichlist=None, direction=None, toggle=None, newfolder=None)
standard = OptionGroup(parser, "Standard Options")
metaopt = OptionGroup(parser, "Meta Info Options", "Further datails about the script startup useful for debugging")
gapod = OptionGroup(parser, "APOD Options", "Controls for the Astronomy Picture of the Day. ")
obmenu = OptionGroup(parser, "Openbox Menu", "Support for openbox xml menu generation. ")
#groupalt = OptionGroup(parser, "Alternative Wallpapers")
gplist = OptionGroup(parser, "List Support")
namecheck = OptionGroup(parser, "Filename Support")
direction = OptionGroup(parser, "Direction Commands")
## Standard Options
standard.add_option("-q", "--quiet",
action="store_true", dest="quiet", default=False, #help=SUPPRESS_HELP)
help="only display warnings and errors")
standard.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=False, #help=SUPPRESS_HELP)
help="display all output")
standard.add_option("--debug",
action="store_true", dest="debug", default=False, #help=SUPPRESS_HELP)
help="debug mode: detailed output of commands")
standard.add_option("--really-quiet",
action="store_true", dest="reallyquiet", default=False, help=SUPPRESS_HELP)
#help="only display errors")
standard.add_option("--silent",
action="store_true", dest="silent", default=False, help=SUPPRESS_HELP)
#help="don't display any output")
standard.add_option('-t', "--test",
action="store_true", dest="test", default=False, #help=SUPPRESS_HELP)
help="test mode :: only print output")
standard.add_option("--test-mod",
action="store_const", const="testmod", dest="command", #help=SUPPRESS_HELP)
help="test mode :: use test function module")
standard.add_option("--test-none",
action="store_const", const="TestNone", dest="command", #help=SUPPRESS_HELP)
help="test mode :: no command specified")
parser.add_option("--info", '-i',
action="store_const", const="info", dest="command",
help="Displays information about the current wallpaper.")
parser.add_option("--last", '-l',
action="store_const", const="last", dest="command",
help="Sets the wallpaper as the last picture")
direction.add_option('-n', "--next",
action="store_const", const="next", dest="direction",
help="Sets the next wallpaper in the sequence")
direction.add_option('-p', "--prev", '--previous',
action="store_const", const="prev", dest="direction",
help="Sets the previous wallpaper in the sequence")
direction.add_option('-r', '--rand', "--random",
action="store_const", const="random", dest="direction",
help="Sets a random wallpaper from the sequence")
direction.add_option('-1', '--first', "--safe",
action="store_const", const="first", dest="direction",
help="Sets the first wallpaer in the sequence")
gplist.add_option('-d', "--default",
action="store_const", const="default", dest="whichlist",
help="Uses the wallpapers from the default file list")
gplist.add_option("--alt",
action="store_const", const="alt", dest="whichlist",
help="Uses the wallpapers from the alternative list")
parser.add_option("--change", '-c',
metavar="Folder[:Filter]", dest="newfolder",
help="Changes the wallpaper folder, optional filter.")
gapod.add_option('-a', "--apod",
action="store_const", const="apod", dest="command",
help="downloads and sets the wallpaper as todays APOD picture")
gapod.add_option("--apod-save",
action="store_const", const="apod-save", dest="command",
help="Saves todays APOD picture")
# gapod.add_option("--apod-last",
# action="store_const", const="apod-last", dest="command",
# help="Sets the wallpaper as yesterdays APOD picture")
# gapod.add_option("--apod-force",
# action="store_const", const="apod-force", dest="command",
# help="force the download of todays APOD picture")
gplist.add_option("--add-to-list",
action="store_const", const='rmfile', dest='toggle',
help="Adds the current wallpaper to the list.")
gplist.add_option("--remove-from-list",
action="store_const", const='addfile', dest='toggle',
help="Removes the current wallpaper from a list.")
gplist.add_option("--toggle-list", '--toggle',
action="store_const", const='toggle', dest='toggle',
help="Adds/Removes the current wallpaper from a list.")
gplist.add_option("--list",
metavar="LIST", dest='whichlist',
help="Sets which list to use.")
obmenu.add_option("--obmenu",
action="store_const", const="obmenu", dest="command",
help="Prints the standard openbox menu.")
obmenu.add_option("--obmenu-simple",
action="store_const", const="obmenu-simple", dest="command",
help="Prints the simple openbox menu.")
obmenu.add_option("--obmenu-alt",
action="store_const", const="obmenu-alt", dest="command", #help=SUPPRESS_HELP)
help="Prints the alternative openbox menu.")
namecheck.add_option("--name-check",
action="store_const", const="sane-name", dest="command",
help="Checks if wallpaper names are valid.")
namecheck.add_option("--name-path",
metavar="PATH", dest="sane_path", default=None,
help="Which folder to check.")
namecheck.add_option("--rename",
action="store_true", dest="sane_rename", default=False,
help="If to rename invalid files.")
metaopt.add_option("--meta-from",
metavar="Source", dest='meta_source', default=None,
help="Details from where the script was launched from")
parser.add_option_group(direction)
parser.add_option_group(gplist)
parser.add_option_group(gapod)
parser.add_option_group(obmenu)
#parser.add_option_group(standard)
#parser.add_option_group(metaopt)
#parser.add_option_group(namecheck)
(options, args) = parser.parse_args()
test = options.test
#debug = options.debug
#verbose = options.verbose
#quiet = options.quiet
## message level
if options.debug == True:
msg = 5
elif options.verbose == True:
msg = 4
elif options.quiet == True:
msg = 2
elif options.reallyquiet == True:
msg = 1
elif options.silent == True:
msg = 0
else:
msg = 3
#if options.command == None:
# try: # try and find a command
# command = args[0]
# except:
# pass
#else:
# command = options.command
command = options.command
if options.debug:
parser_options()
meta_info()
LockScript(Main, msg=msg) # start the script
else:
pass
apod.py
#!/usr/bin/python3
#Filename: apod.py
__version__ = '3.2.0'
import os, sys
from optparse import OptionParser, OptionGroup, SUPPRESS_HELP
import shutil
from datetime import date
#print('loaded apod')
##### VARIABLES #####
## Files and Paths
#apod_archive_folder = '/home/wallpaper/apod_archive'
archive_folder = '/home/wallpaper/apod_archive'
save_folder = '/home/wallpaper/Space'
tmpdir = '/tmp/wallpaper/apod'
html_file = os.path.join(tmpdir, 'apod-html')
img_file = os.path.join(tmpdir, 'apod-img')
index_file = os.path.join(tmpdir, 'apod-index')
work = os.path.expanduser('~/.config/openbox/apod')
date_file = os.path.join(work, 'apod-date')
apodfile = os.path.join(work, 'apod')
apodlast = os.path.join(work, 'apod-last')
namefile = os.path.join(work, 'apod-names')
video_dir = os.path.join(work, 'apod-videos')
errs = os.path.join(work, 'archive-errors')
dtoday = str(date.today()) # todays date
thisyear = dtoday[:4]
saveprefix = 'APOD-'
## Defaults
def_test = False
def_msg = 3
def_command = None
def_apodset = True
def_archive_apod = True # Keep all APOD pictures
def_clear_apod = False
def_force_apod = False
def_cutoff = None
store_file_list = ''
##### LOCK v2 #####
## Lock v2
def LockScript(fun, lock='/tmp/apod.lock', msg=def_msg):
"""Locks the script before starting a function."""
from os import O_CREAT, O_EXCL
try: # lock the function
fd = os.open(lock, O_CREAT+O_EXCL)
#print('created lock file')
except OSError:
print('Already running function {0}...' .format(fun))
sys.exit(1)
try:
fun(msg)
finally:
try: # release lock
os.remove(lock)
except:
print('Error :: Lockfile missing !!!')
##### DEFINITIONS #####
def get_date(dfile=date_file):
check_file(dfile, create=True, msg=1)
f = open(dfile)
return f.read()
def check_dir(d, create=False, msg=def_msg):
"""Check if path exists."""
if not os.path.exists(d):
if msg > 3:
print('Error : folder missing...')
if create:
try:
os.makedirs(d)
if msg > 3 :
print('...created folder')
return True
except:
print('Fatal Error :: could not create directory {0}' .format(d))
sys.exit()
else:
return False
elif not os.path.isdir(d):
print('Fatal Error :: this is not a directory')
sys.exit()
else:
return True
def check_file(f, create=False, msg=def_msg):
"""Check if path exists."""
if not os.path.exists(f):
#if msg > 3:
# print('Error : file missing...')
if create:
check_dir(os.path.dirname(f), create=create, msg=msg)
if msg > 5:
print('creating file {0}' .format(f))
try:
q = open(f, 'w')
q.write('')
q.close()
return True
except:
if msg >= 1:
print('Fatal Error :: could not create file {0}' .format(f))
sys.exit()
else:
if msg >= 5:
print('file {0} does not exist' .format(f))
return False
else:
if msg >= 5:
print('file {0} exists' .format(f))
return True
def copy_file(ffrom, fto, msg=def_msg, test=def_test):
"""Copy files, from to (with test option)."""
if test:
print('[[copy command: {0} to {1}]]' .format(ffrom, fto))
else:
try:
shutil.copy(ffrom, fto)
except:
if not os.path.exists(ffrom):
print('Warning: error copying file, does not exist')
elif os.path.isdir(ffrom):
print('Fatal Error :: file being copied is a directory!')
sys.exit()
else:
print('Fatal Error :: UNKNOWN ERROR during copy')
sys.exit()
def download_files(hfile=html_file, ifile=img_file, datefile=date_file, msg=def_msg, test=def_test, apodset=def_apodset, day='today', archive_apod=def_archive_apod):
"""Download the APOD html and img."""
import urllib.request
import socket
timeout = 10
socket.setdefaulttimeout(timeout)
if day == 'today':
url = 'http://antwrp.gsfc.nasa.gov/apod/astropix.html'
name = dtoday
year = thisyear
else:
url = 'http://antwrp.gsfc.nasa.gov/apod/ap{0}.html' .format(day)
name = day
if day[:1] == '9' :
name = '19{0}-{1}-{2}' .format(day[:2], day[2:4], day[4:])
else:
name = '20{0}-{1}-{2}' .format(day[:2], day[2:4], day[4:])
year = name[:4]
try:
response = urllib.request.urlopen(url)
html = response.read()
if msg > 3:
print('downloaded html data for {0}' .format(day))
check_file(hfile, create=True, msg=msg)
f = open(hfile, 'wb')
f.write(html)
f.close()
except:
if msg >= 1:
print('ERROR :: page not found :: exiting.')
sys.exit(1)
if day == 'today':
t = open(datefile, 'w')
t.write(dtoday)
t.close()
if msg > 3:
print('updated date file with todays date')
if msg > 3:
print('copying over yesterdays APOD image')
copy_file(apodfile, apodlast, msg=msg, test=test)
found_img = False
with open(hfile, 'r', encoding='latin-1') as g:
for line in g:
if 'IMG SRC' in line:
i = line.split('"')
if msg > 4:
print('found image : {0}' .format(i[1]))
found_img = True
try:
img_responce = urllib.request.urlopen(os.path.join('http://antwrp.gsfc.nasa.gov/apod/', i[1]))
img_data = img_responce.read()
except:
print('error in img download')
check_dir(errs, create=True, msg=1)
check_file(os.path.join(errs, name), create=True, msg=0)
else:
if msg >= 5:
print('read img data')
check_file(ifile, create=True, msg=0)
if msg >= 5:
print('created img file')
with open(ifile, 'wb') as l:
l.write(img_data)
if msg >= 3:
print('downloaded image for {0}' .format(day))
if day == 'today':
copy_file(ifile,apodfile, msg=msg, test=test)
if archive_apod:
apod_archive(msg=msg, test=test, dfile=ifile, year=year, name=name)
if not found_img :
if msg >= 3:
print('video :: not found image line in file from {0}' .format(i))
check_file(os.path.join(video_dir, name), create=True, msg=0)
if day == 'today':
print('Warning : no image line in html file')
copy_file(apodlast,apodfile, msg=msg, test=test)
os.remove(hfile)
os.remove(ifile)
def apod_archive(dfile=img_file, msg=def_msg, test=def_test, year=thisyear, name=dtoday):
"""Archive APOD picture."""
arch_file = os.path.join(archive_folder, year, name)
check_dir(os.path.join(archive_folder, year), msg=msg, create=True)
if check_file(arch_file, create=False, msg=msg):
if msg > 3:
print('APOD picture already archived')
else:
if msg > 3:
print('Archiving APOD picture')
copy_file(dfile, arch_file, msg=msg, test=test)
def apod_save(day='current', sfolder=save_folder, msg=def_msg, test=def_test, prefix=saveprefix):
"""Save APOD picture as best of APOD."""
with open(os.path.expanduser('~/.fehbg'), 'r') as f:
a = f.read()
b = a[15:-1]
f.close()
if day == 'today' or b[-4:] == 'apod':
source = apodfile
sfile = prefix + dtoday
elif day == 'current':
if not (os.path.dirname(b) == archive_folder or os.path.dirname(os.path.dirname(b)) == archive_folder ):
print('picture is not in the recognised apod archive folder')
sys.exit()
source = b
sfile = prefix+ b[-10:]
else:
if msg >= 1:
print('unknown file specified')
sys.exit(1)
if msg > 3:
print('Saving APOD picture to Save folder')
copy_file(source, os.path.join(sfolder, sfile), msg=msg, test=test)
def set_apod(a=apodfile, msg=def_msg, test=def_test, apodset=def_apodset ):
"""Sets the APOD wallpaper."""
if not apodset:
if msg > 3:
print('Skipping setting APOD picture')
else:
if msg > 3:
print('Setting APOD picture')
if test:
print("exec :: feh --bg-scale {0}" .format(a))
else:
os.system("feh --bg-scale {0}" .format(a))
def clear_date(msg=def_msg, test=False):
"""Clears the date file."""
if msg > 3:
print('reseting date')
if not test:
t = open(datefile, 'w')
t.write('')
t.close()
##### APOD NAMES #####
def get_name(fname=None, names=namefile, msg=def_msg, rerun=True, prefix=saveprefix):
"""Returns the name of an APOD file."""
name_index = []
title_index = []
with open(names, 'r') as f:
for line in f:
i = line.split(',', 3)
name_index.append(i[0])
title_index.append(i[3])
if fname == None:
if msg >= 4:
print('getting todays date')
date = get_date()
elif fname.startswith(prefix):
if msg >= 4:
print('removing save prefix from name')
date = fname[len(prefix):]
else:
date = fname
try:
c = name_index.index(date)
return title_index[c][:-2]
except:
if rerun:
if msg >= 2:
print('Warning :: name not in index, recreating')
download_apod_index(msg=msg)
build_name_list(msg=msg)
get_name(fname=fname, names=names, msg=msg, rerun=False)
else:
if msg >= 1:
print('Error :: name not in index, please recreate')
def regen_index(msg=def_msg, cutoff=None):
download_apod_index(msg=msg)
build_name_list(msg=msg, cutoff=cutoff)
def file_status(date, msg=def_msg, cutoff=None):
"""Status of an APOD Picture."""
downloaded_files = [] # files in main apod download folder
archive_files = [] # files in sub folder
archive_download = [] # files from archive download
videolist = []
for i in os.listdir(archive_folder):
if os.path.isdir(os.path.join(archive_folder,i)):
for j in os.listdir(os.path.join(archive_folder, i)):
j1 = j[2:]
j2 = j1.replace('-','')
archive_files.append(j2)
else:
i1 = i[2:]
i2 = i1.replace('-','')
downloaded_files.append(i2)
for i in os.listdir(video_dir):
videolist.append(i)
if date[:1] == '9' :
tdate = '19{0}' .format(date)
else:
tdate = '20{0}' .format(date)
if cutoff == None:
cutoff = '1995' # apod started 1995 06 16
if tdate <= cutoff:
return 'cut-off'
try:
downloaded_files.index(date)
if msg >= 5:
print('picture has been downloaded')
return 'downloaded' #print('picture from {0} has already been downloaded' .format(pagedate))
except:
pass
try:
archive_files.index(date)
if msg >= 5:
print('picture has been downloaded')
return 'archived' #print('picture from {0} has already been downloaded' .format(pagedate))
except:
pass
try:
archive_download.index(date)
if msg >= 5:
print('picture has been downloaded by archive retrieval')
return 'retrieved'
except:
pass
try:
videolist.index(date)
if msg >= 5:
print('picture is a video')
return 'video file'
except:
if msg >= 5:
print('picture is missing')
return 'missing'
def download_apod_index(msg=def_msg, index=index_file):
"""Downloads the apod index file."""
import urllib.request
try:
response = urllib.request.urlopen('http://antwrp.gsfc.nasa.gov/apod/archivepix.html')
html = response.read()
if msg > 3:
print('downloaded apod index')
check_file(index, create=True, msg=msg)
f = open(index, 'wb')
f.write(html)
f.close()
except:
if msg >= 1:
print('Fatal Error :: index page not found')
sys.exit()
def build_name_list(msg=def_msg, index=index_file, names=namefile, cutoff=None):
"""Builds a name list."""
check_file(names, create=True, msg=msg)
data = []
with open(index, 'r') as f:
for line in f:
if '<a href="ap' in line:
i = line.split(':', 1)
imgdate = i[1][13:19]
imgname = i[1][26:-9]
status = file_status(date=imgdate, msg=msg, cutoff=None)
if imgdate[:1] == '9' :
imgfile = '19{0}-{1}-{2}' .format(imgdate[:2], imgdate[2:4], imgdate[4:])
else:
imgfile = '20{0}-{1}-{2}' .format(imgdate[:2], imgdate[2:4], imgdate[4:])
if msg >= 3:
print('found file : date = {0} : status = {1} : filename = {2}' .format(imgdate, status, imgfile))
data.append('{0},{1},{2},{3} \n' .format(imgfile, imgdate, status, imgname))
if msg >= 4:
print('finished parsing index file')
with open(namefile, 'w') as newf:
for j in data:
newf.writelines(j)
if msg >= 4:
print('written new name list')
##### MACROS #####
def download2(msg=def_msg, test=def_test, apodset=def_apodset, force_apod=def_force_apod, clear_apod=def_clear_apod, archive_apod=def_archive_apod):
"""Downloads and sets APOD picture."""
if clear_apod:
clear_date(msg=msg, test=test)
if force_apod:
if msg >= 3:
print('download forced')
if get_date() != dtoday or force_apod:
download_files(msg=msg, test=test, archive_apod=archive_apod)
else:
if msg >= 2:
print('apod has already been downloaded today')
set_apod(msg=msg, test=test, apodset=apodset) # #set apod picture
def archive_download(msg=def_msg, newindex=False, cutoff=None, test=def_test):
"""Search and download missing pictures from the APOD archive pages"""
if newindex:
regen_index(msg=msg, cutoff=cutoff)
target_dates = []
with open(namefile, 'r') as g:
for line in g:
i = line.split(',')
if i[2] == 'missing':
if file_status(date=i[1], msg=msg) == 'missing':
target_dates.append(i[1])
if msg >= 4:
print('target list built')
target_dates.sort()
for j in target_dates:
if msg >= 4:
print('')
download_files(msg=msg, test=test, day=j, archive_apod=True)
##### OPENBOX MENU #####
def gen_obmenu_standard():
import oblib
oblib.pipe_start()
oblib.item('APOD', 'apod.py --update')
oblib.item('APOD Save', 'apod.py --save')
oblib.item('APOD Force', 'apod.py --force')
oblib.pipe_end()
def obmenu_archive_folders(t='pipe'):
import oblib
years = []
for i in os.listdir(archive_folder):
if os.path.isdir(os.path.join(archive_folder,i)):
years.append(i)
years.sort()
years.reverse()
if t == 'pipe':
oblib.pipe_start()
else:
oblib.menu_start('Apod Archive')
for k in years:
oblib.item('Apod: {0}' .format(k), 'wallpaper.py --change {0}/{1}' .format(archive_folder, k))
if t == 'pipe':
oblib.pipe_end()
else:
oblib.menu_end()
##### TEST FUNCTIONS #####
def parser_options():
print('Options are: {0}' .format(options))
print('Args are : {0}' .format(args))
print('Command is : {0}' .format(options.command))
def meta_info():
if options.meta_source == None:
print('No source specifieed')
else:
print('Script launched from source :: {0}' .format(options.meta_source))
def test_module(msg=def_msg):
pass
#gen_obmenu_arfolders()
#unicode_test()
#apod_archive_download(msg=msg)
#print(check_list(args[0]))
#regen_index(msg=msg)
#print(get_name(fname=None, msg=msg))
#print(len(saveprefix))
##### MAIN FUNCTION #####
def Apod_Main(msg=def_msg):
"""Main functions."""
command = options.command
check_dir(work, create=True, msg=msg)
if options.regen_index :
regen_index(msg=msg, cutoff=options.cutoff)
if command == None:
command = 'pass'
if command == "download":
if msg > 3:
print('Updating APOD')
download2(msg=msg, test=options.test, apodset=options.apodset, force_apod=options.force, clear_apod=options.clear, archive_apod=options.archive)
elif command == "download-only":
if msg > 3:
print('Downloading APOD picture only')
download2(msg=msg, test=options.test, apodset=False, force_apod=options.force, clear_apod=options.clear, archive_apod=False)
elif command == "last":
if msg > 3:
print('Setting last APOD')
set_apod(apodlast, msg=msg, test=options.test, apodset=options.apodset)
elif command == "save-today":
apod_save('today', msg=msg, test=options.test)
elif command == "save":
apod_save('current', msg=msg, test=options.test)
elif command == "set":
if msg > 3:
print('Setting APOD')
set_apod(msg=msg, test=options.test, apodset=options.apodset)
elif command == "restore":
if msg > 3:
print('Restoreing yesterdays APOD picture.')
copy_file(apodlast, apodfile, msg=msg, test=options.test)
set_apod(msg=msg, test=options.test, apodset=options.apodset)
elif command == 'retrieve':
archive_download(msg=msg, newindex=options.newindex, cutoff=options.cutoff)
elif command == 'testmod':
test_module(msg=msg)
elif command == "TestNone":
print('Test mode null op[tion')
elif command == "pass":
if msg >= 4:
print('pass option has been called')
elif not command == None:
if msg >= 2:
print('Warning :: Unrecognised command specified')
#pass
else:
if msg >= 2:
print('Warning :: no commands found, using default option')
set_apod(msg=msg, test=options.test, apodset=options.apodset)
##### SCRIPT STARTUP #####
if __name__ == "__main__":
parser = OptionParser(usage = "usage: %prog [download options] [command]", version="%prog {0}" .format(__version__),
description = "Script to manage APOD wallpapers.")
parser.set_defaults(archive=def_archive_apod, apodset=def_apodset, command=None)
standard = OptionGroup(parser, "Standard Options")
doptions = OptionGroup(parser, "Download Options")
aoptions = OptionGroup(parser, "Archive Options")
metaopt = OptionGroup(parser, "Meta Info Options", "Further datails about the script startup useful for debugging")
standard.add_option("-q", "--quiet",
action="store_true", dest="quiet", default=False,
help="only display warnings and errors")
standard.add_option("-v", "--verbose",
action="store_true", dest="verbose", default=False,
help="display all output")
standard.add_option("--debug",
action="store_true", dest="debug", default=False,
help="debug mode: detailed output of commands")
standard.add_option("--really-quiet",
action="store_true", dest="reallyquiet", default=False, help=SUPPRESS_HELP)
#help="only display errors")
standard.add_option("--silent",
action="store_true", dest="silent", default=False, help=SUPPRESS_HELP)
#help="don't display any output")
standard.add_option('-t', "--test",
action="store_true", dest="test", default=False, help=SUPPRESS_HELP)
#help="test mode :: only print output")
standard.add_option("--test-mod",
action="store_const", const="testmod", dest="command", help=SUPPRESS_HELP)
#help="test mode :: use test function module")
standard.add_option("--test-none", "--pass",
action="store_const", const="TestNone", dest="command", help=SUPPRESS_HELP)
#help="test mode :: no command specified")
parser.add_option('-a', '-u', '--update',
action="store_const", const="download", dest="command",
help="Downloads and sets the wallpaper as todays APOD picture")
parser.add_option("--save",
action="store_const", const="save", dest="command",
help="Saves the curent APOD wallpaper")
parser.add_option("--set",
action="store_const", const="set", dest="command",
help="Sets wallpaper as APOD")
parser.add_option('--download-only',
action="store_const", const="download-only", dest="command",
help="Only downloads todays APOD picture")
parser.add_option("--last",
action="store_const", const="last", dest="command",
help="Sets the wallpaper as yesterdays APOD picture")
parser.add_option("--restore",
action="store_const", const="restore", dest="command", help=SUPPRESS_HELP)
#help="Restores yesterdays APOD picture as todays.")
aoptions.add_option("--retrieve", '--populate',
action="store_const", const="retrieve", dest="command",
help="Retrives archive APOD images from the APOD archive")
aoptions.add_option("--regen-index",
action="store_true", dest="regen_index", default=False,
help="Regenerates the APOD index file")
aoptions.add_option("--no-index",
action="store_false", dest="newindex", default=True, help=SUPPRESS_HELP)
#help="Do not build a nex index")
aoptions.add_option("--cut-off",
metavar="Date", dest='cutoff', default=def_cutoff,
help="Cut off date for downloading archive pictures")
# parser.add_option("--get-name",
# metavar="NAME", dest="getname", default=None,
# help="Returns the name of a pictures name")
doptions.add_option("--force",
action="store_true", dest="force", default=def_force_apod,
help="Force the download of todays APOD picture")
doptions.add_option("--clear",
action="store_true", dest="clear", default=def_clear_apod, help=SUPPRESS_HELP)
#help="resets the date of last APOD download.")
doptions.add_option("--archive",
action="store_true", dest="archive",
help="If to archive a picture after download")
doptions.add_option("--no-archive",
action="store_false", dest="archive",
help="If to archive a picture after download")
doptions.add_option("--force-set",
action="store_true", dest="apodset", help=SUPPRESS_HELP)
#help="If to set the wallpaper as APOD.")
doptions.add_option("--no-set",
action="store_false", dest="apodset", help=SUPPRESS_HELP)
#help="Skips setting APOD as wallpaper")
metaopt.add_option("--meta-from",
metavar="Source", dest='meta_source', default=None,
help="Details from where the script was launched from")
parser.add_option_group(doptions)
parser.add_option_group(aoptions)
parser.add_option_group(standard)
#parser.add_option_group(metaopt)
(options, args) = parser.parse_args()
## message level
if options.debug == True:
msg = 5
elif options.verbose == True:
msg = 4
elif options.quiet == True: # warnings
msg = 2
elif options.reallyquiet == True: # errors only
msg = 1
elif options.silent == True: # no output
msg = 0
else:
msg = 3
if options.debug:
parser_options()
meta_info()
LockScript(Apod_Main, msg=msg) -
Non-latin elements (=XML tag names) processing
Hello there,
How could I process XML with non-latin tag names? As far as I know, XI itself cannot map or interact with these XML elements nor design these names in IB.
But I have to work with it and what should I do? The only way for me is to write EJB-module for adapters which could remap these names into latin ones using simple mapping table and XSLT.
PS There are no problems with Unicoded content, but BIG deal with naming conventionJust a remark, surprisingly for me I can use non-latinized (russian for example) XSD as an external definition and create message type based on it.
And I can use russian elements in graphical mapping too but not in own XI elements.
So this is much more interface problem, not basis one.
Maybe you are looking for
-
Have an unprecedented problem with printing 11X14 photos in both PS and Lightroom. The printer is operataing properly. Printing 81/2X11 correctly. Have double and triple checked all the printing settings and they are correct. Have checked with friend
-
Disable "Change Password" option in Comms Express
I need to disable/remove the Change Password option in Communications Express. I'm using patch level 122793-30. How do I do this? Are there any instructions out there for this? I see them for Convergence....which I have installed also but I have user
-
Cannot get Windows Media Player off my computer
I downloaded Windows Media Player for something a while back and found that I did not need it, so I put it in the garbage. Trouble is, I cannot get it out of the garbage! I cannot empty my recycle bin without bypassing the WMP. So I tried taking it o
-
Iphone cant connect to password protected networks
Hi, my iphone connects to non password networks very easily. However when its protected by a password i can't log in even if the hep key is correct. I've done everything from resetting the network settings, typing the ip address, and so on. Thank you
-
Help seeding accounts from DSEE 6.3.1
Hi, I am a newbie at IDM, but just came off some training for it. My initial task should be to seed accounts from DSEE. I tried this using "Load From Resource" and I got a number of accounts, about 15000, but this only from an available pool of about