Du bist nicht angemeldet.

thimothei

Anfänger

  • »thimothei« ist der Autor dieses Themas

Beiträge: 4

Wohnort: München

Beruf: Was mit Medien

  • Private Nachricht senden

1

Samstag, 30. August 2014, 00:33

Libre-, Open-Office Macro in Python für Marktpreis Import

So eigentlich wollte ich ja was mit GreaseMonkey machen aber Scrum hat vor Jahren schon alles ganz toll runterprogrammiert.
Will gar nicht wissen wieviel Zeit er da reingesteckt hat. Für die paar Zeilen python habe ich recht lange gebraucht.

Das Python script in das entsprechende Verzeichniss kopieren.
Eine OpenOffice Calc (Spreadsheet) Datei erstellen und eine Tabelle in "AktuellePreise" umbennen. Natürlich braucht es auch eine Internetverbindung.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# -*- coding: cp1252 -*-
# This code is under  GPL license #

import uno
import unohelper
import sys
import imp
import os
import locale
import json
import collections
import urllib.request
import datetime

now = datetime.datetime.now()


# a UNO struct later needed to create a document
from com.sun.star.text.ControlCharacter import PARAGRAPH_BREAK
from com.sun.star.text.TextContentAnchorType import AS_CHARACTER
from com.sun.star.awt import Size

from com.sun.star.lang import XMain

ctx = uno.getComponentContext()
oDoc = XSCRIPTCONTEXT.getDocument()


myDict = {
'alraune': 'Alraune',
'bretter': 'Bretter',
'brot': 'Brot',
'eisen': 'Eisen',
'eisenerz': 'Eisenerz',
'faesser': 'Fässer',
'fleisch': 'Fleisch',
'folianten': 'Spruchrollen',
'gemuese': 'Gemüse',
'geschirr': 'Geschirr',
'getreide': 'Getreide',
'hanf': 'Hanf',
'holz': 'Holz',
'honig': 'Honig',
'kerzen': 'Kerzen',
'kohle': 'Kohle',
'leder': 'Leder',
'lehm': 'Lehm',
'mehl': 'Mehl',
'met': 'Met',
'moebel': 'Möbel',
'naegel': 'Nägel',
'obst': 'Obst',
'papier': 'Papier',
'sattel': 'Sattel',
'seile': 'Seile',
'steine': 'Steine',
'steinziegel': 'Steinziegel',
'stoff': 'Stoff',
'update': 'Update',
'vieh': 'Vieh',
'werkzeuge': 'Werkzeuge',
'zauberwasser': 'Elixiere',
'ziegel': 'Ziegel'
}


def importPreiseDragosien():

	"""Import foo bar"""
   
	response = urllib.request.urlopen('http://serv.endoftheinternet.org/dragosien/marketsnapshot.json')
	print ("http return  code: {0}".format(response.getcode()))   

	jsonString = response.readall().decode('utf-8')
  
	snapshot = json.loads(jsonString)
	snapshot = collections.OrderedDict(sorted(snapshot.items()))
  
	cnt = 4
  	
	
	# open a writer document
	#oSheet = oDoc.CurrentController.ActiveSheet
	#oSelection = ThisComponent.CurrentSelection
	oSheets = oDoc.getSheets()
	oSheet = oSheets.getByName('AktuellePreise')  
 	
	oCell = oSheet.getCellRangeByName("B" + str(cnt))
	oCell.String =  now.strftime("%Y-%m-%d %H:%M")
	cnt = cnt + 1
	for product in snapshot:
    	prod_dict = snapshot[product]
    	value_type = type ( prod_dict )
    	if value_type is dict:
        	oCell = oSheet.getCellRangeByName("B" + str(cnt))
        	oCel2 = oSheet.getCellRangeByName("C" + str(cnt))
        	oCel3 = oSheet.getCellRangeByName("D" + str(cnt))
        	oCel4 = oSheet.getCellRangeByName("E" + str(cnt))
        	#oCel5 = oSheet.getCellRangeByName("F" + str(cnt))
        	oCell.String = str(myDict[product])
        	oCel2.Value  = float(prod_dict['price'][0:-2])
        	oCel3.Value  = float(prod_dict['Ubuy'])
        	oCel4.Value  = float(prod_dict['Usell'])
        	cnt = cnt + 1
        	
#print (" {0}:\t Preis {1} kaufen: {2:.2f} verkaufen: {3:.2f}".format(myDict[product],prod_dict['price'][0:-2],prod_dict['Ubuy'],prod_dict['Usell']))

g_exportedScripts = importPreiseDragosien,


Gruß thimotei

Beiträge: 697

Wohnort: Mutter Erde

Beruf: Master of Disaster

  • Private Nachricht senden

2

Sonntag, 31. August 2014, 01:07

Deine Mühe in Ehren.....aber wozu das?
Die Marktpreise sehe ich: 1. Ingame und 2. sinnvoll aufbereitet in "Dragsup".
Warum sollte ich mir noch ein Open Office Sheet machen? 8)
:rolleyes: Die Lage ist hoffnungslos, aber nicht ernst! :D

3

Donnerstag, 18. September 2014, 14:01

Warum sollte ich mir noch ein Open Office Sheet machen? 8)
für libre- und open-benützer zum gleich darauf mittels spalten und formeln verschiedene bearbeitungen durchzuführen? ;)
efeu
mit einer Horde von Senioren und Jungspunden :love:

MaDS


Thema bewerten