Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Dragosien - Land der Drachen - Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

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