Skip to content

Commit 90edc8a

Browse files
committed
归档
1 parent 3f44ba4 commit 90edc8a

File tree

4 files changed

+390
-2
lines changed

4 files changed

+390
-2
lines changed

src/zh-hant/scripts/properties.py renamed to src/zh-hant/properties.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def set_random_text(props, prop):
8484
messages = ('天氣不錯!', '吃了嗎?', '下雨啦!')
8585
text = messages[random.randint(0, 2)]
8686

87-
# 將隨機文字寫入腳本設定項 message
87+
# 將隨機文字寫入設定項 message
8888
obs.obs_data_set_string(current_settings, 'message', text)
8989
# 將腳本設定應用到屬性集物件
9090
obs.obs_properties_apply_settings(props, current_settings)

src/zh-hant/sources.py

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# 匯入模組 obspython
2+
import obspython as obs
3+
4+
def test(props, prop):
5+
# 建立一個名稱為 my_text 的文字(GDI+)來源,並將字串 "今天天氣不錯!" 設定為文字
6+
settings = obs.obs_data_create_from_json('{"text":"今天天氣不錯!"}')
7+
source = obs.obs_source_create('text_gdiplus', 'my_text', settings, None)
8+
9+
# 釋放來源物件和來源設定物件
10+
obs.obs_source_release(source)
11+
obs.obs_data_release(settings)
12+
13+
# 複製名稱為 Welcome 的來源,並指定新名稱 Bye
14+
welcome = obs.obs_get_source_by_name('Welcome')
15+
bye = obs.obs_source_duplicate(welcome, 'Bye', False)
16+
17+
# 通過 Welcome 的來源設定物件,修改其對應的文字
18+
settings = obs.obs_source_get_settings(welcome)
19+
obs.obs_data_set_string(settings, 'text', '你好,歡迎!')
20+
obs.obs_source_update(welcome, settings)
21+
# 釋放來源設定物件
22+
obs.obs_data_release(settings)
23+
24+
# 顯示 Weclome 來源的大小
25+
width = obs.obs_source_get_width(welcome)
26+
height = obs.obs_source_get_height(welcome)
27+
obs.script_log(obs.LOG_INFO, f"Welcome 的大小 {width}x{height}")
28+
29+
# 顯示 Weclome 來源的來源類型識別碼和 UUID
30+
v_id = obs.obs_source_get_id(welcome)
31+
id = obs.obs_source_get_unversioned_id(welcome)
32+
obs.script_log(obs.LOG_INFO, f"Welcome 的 id {v_id} {id}")
33+
uuid = obs.obs_source_get_uuid(welcome)
34+
obs.script_log(obs.LOG_INFO, f"Welcome 的 uuid {uuid}")
35+
36+
# 釋放來源 Welcome 和 Bye
37+
obs.obs_source_release(welcome)
38+
obs.obs_source_release(bye)
39+
40+
# 如果存在名稱為 Groups 的來源,則將其改名為 Group
41+
groups = obs.obs_get_source_by_name('Groups')
42+
if groups:
43+
obs.obs_source_set_name(groups, 'Group')
44+
obs.obs_source_release(groups)
45+
46+
# 顯示 Group 來源的類型,並判斷是否為群組
47+
group = obs.obs_get_source_by_name('Group')
48+
group_type = obs.obs_source_get_type(group)
49+
obs.script_log(obs.LOG_INFO, f"Group 的類型 {group_type},等於 OBS_SOURCE_TYPE_SCENE?{group_type == obs.OBS_SOURCE_TYPE_SCENE}")
50+
obs.script_log(obs.LOG_INFO, f"Group 是群組?{obs.obs_source_is_group(group)}")
51+
obs.obs_source_release(group)
52+
53+
# 來源 Screen 如果存在,則將其移除
54+
screen = obs.obs_get_source_by_name('Screen')
55+
if screen:
56+
obs.obs_source_remove(screen)
57+
obs.script_log(obs.LOG_INFO, f"Screen 被移除?{obs.obs_source_removed(screen)}")
58+
obs.obs_source_release(screen)
59+
60+
# 判斷來源 Video 的輸出旗標
61+
video = obs.obs_get_source_by_name('Video')
62+
flags = obs.obs_source_get_output_flags(video)
63+
obs.script_log(obs.LOG_INFO, f"Video 具有視訊功能?{flags & obs.OBS_SOURCE_VIDEO == obs.OBS_SOURCE_VIDEO}")
64+
obs.script_log(obs.LOG_INFO, f"Video 具有音訊功能?{flags & obs.OBS_SOURCE_AUDIO == obs.OBS_SOURCE_AUDIO}")
65+
obs.obs_source_release(video)
66+
67+
# 為腳本新增一個用於測試的按鈕,回呼函式為 test
68+
def script_properties():
69+
props = obs.obs_properties_create()
70+
obs.obs_properties_add_button(props, 'test', '測試', test)
71+
return props
72+
73+
74+
# def script_update(settings):
75+
# # 複製名稱為 Welcome 的來源,並指定新名稱 Bye
76+
# welcome = obs.obs_get_source_by_name('Welcome')
77+
# bye = obs.obs_source_duplicate(welcome, 'Bye', False)
78+
79+
# # 通過 Welcome 的來源設定物件,修改其對應的文字
80+
# settings = obs.obs_source_get_settings(welcome)
81+
# obs.obs_data_set_string(settings, 'text', '你好,歡迎!')
82+
# obs.obs_source_update(welcome, settings)
83+
# # 釋放來源設定物件
84+
# obs.obs_data_release(settings)
85+
86+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_get_width(welcome)} {obs.obs_source_get_width(welcome)}")
87+
88+
# # 釋放來源 Welcome 和 Bye
89+
# obs.obs_source_release(welcome)
90+
# obs.obs_source_release(bye)
91+
92+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_get_display_name('text_gdiplus')}")
93+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_get_display_name('color_filter')}")
94+
95+
# o = obs.obs_source_create_private("text_gdiplus", "my_test", None)
96+
# obs.script_log(obs.LOG_INFO, f" my_test {obs.obs_source_is_hidden(o)}")
97+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_get_name(o)} {obs.obs_source_removed(o)}")
98+
# obs.obs_source_release(o)
99+
# o2 = obs.obs_source_create("text_gdiplus", "my_test", None, None)
100+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_get_name(o2)}")
101+
102+
# o = obs.obs_get_source_by_name('圖片')
103+
# if o:
104+
# # obs.script_log(obs.LOG_INFO, f"{obs.obs_get_source_by_name('圖片')}")
105+
# o1 = obs.obs_source_duplicate(o, 'None', False)
106+
# obs.obs_source_release(o)
107+
# obs.obs_source_release(o1)
108+
109+
# v = obs.obs_source_is_hidden(o)
110+
# obs.obs_source_set_hidden(o, True)
111+
# obs.script_log(obs.LOG_INFO, f"hidden {v}")
112+
113+
# o = obs.obs_get_source_by_name('場景 2 2')
114+
# # o1 = obs.obs_get_source_by_name('Welcome')
115+
# if o:
116+
# # # obs.obs_source_remove(o)
117+
# # # obs.script_log(obs.LOG_INFO, f"{obs.obs_source_removed(o1)}")
118+
# # # obs.obs_source_release(o)
119+
# # abc = obs.obs_source_get_id(o)
120+
# # obs.script_log(obs.LOG_INFO, f"{obs.obs_source_get_output_flags(o)}x{abc}x{obs.obs_get_source_output_flags(abc)}")
121+
# # obs.script_log(obs.LOG_INFO, f"{obs.OBS_SOURCE_TYPE_INPUT}x{obs.OBS_SOURCE_TYPE_FILTER}x{obs.OBS_SOURCE_TYPE_TRANSITION}x{obs.OBS_SOURCE_TYPE_SCENE}")
122+
# # # obs.obs_source_set_name(o, '場景 2')
123+
# s = obs.obs_source_get_settings(o)
124+
# json = obs.obs_data_get_json(s)
125+
# obs.script_log(obs.LOG_INFO, f"{json}")
126+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_data_get_string(s, 'text')}")
127+
128+
# obs.obs_data_set_string(s, 'text', '你好哦!')
129+
# obs.obs_source_update(o, s)
130+
# obs.obs_data_release(s)
131+
# obs.obs_data_release(s)
132+
# obs.script_log(obs.LOG_INFO, f"text re={obs.obs_data_get_string(s, 'text')}")
133+
# obs.obs_source_release(o)
134+
135+
# o = obs.obs_get_source_by_name('場景 2 2')
136+
# # o1 = obs.obs_get_source_by_name('Welcome')
137+
# if o:
138+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_showing(o)}")
139+
# obs.obs_source_dec_showing(o)
140+
# obs.obs_source_set_enabled(o, True)
141+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_showing(o)}")
142+
# obs.obs_source_release(o)
143+
144+
# d4 = obs.obs_get_source_defaults('text_gdiplus')
145+
# obs.obs_data_release(d4)
146+
# obs.obs_data_release(d4)
147+
# d4 = obs.obs_get_source_defaults('text_gdiplus')
148+
# obs.script_log(obs.LOG_INFO, obs.obs_data_get_string(d4, 'align'))
149+
150+
# d = obs.obs_data_create()
151+
152+
# do = obs.obs_data_array_create()
153+
154+
# obs.obs_data_set_default_array(d, "player", do)
155+
156+
# i = obs.obs_data_create()
157+
# obs.obs_data_array_push_back(do, i)
158+
# obs.obs_data_release(i)
159+
# obs.obs_data_array_release(do)
160+
161+
# do = obs.obs_data_get_default_array(d, "player")
162+
# # do = obs.obs_data_get_default_array(d, "player")
163+
# obs.script_log(obs.LOG_INFO, f"count def={obs.obs_data_array_count(do)}")
164+
# obs.obs_data_array_release(do)
165+
# # obs.obs_data_array_release(do)
166+
# do = obs.obs_data_get_default_array(d, "player")
167+
# obs.script_log(obs.LOG_INFO, f"count released def={obs.obs_data_array_count(do)}")
168+
169+
# de = obs.obs_data_get_defaults(d)
170+
171+
# obs.script_log(obs.LOG_INFO, f"name def={obs.obs_data_get_string(de, 'name')}")
172+
# obs.script_log(obs.LOG_INFO, f"age def={obs.obs_data_get_string(de, 'age')}")
173+
174+
# # obs.obs_data_release(de)
175+
# obs.obs_data_release(d)
176+
177+
# obs.script_log(obs.LOG_INFO, f"name def={obs.obs_data_get_string(d, 'name')}")
178+
# obs.script_log(obs.LOG_INFO, f"age def={obs.obs_data_get_string(d, 'age')}")
179+
180+
# def call(p, c, pa):
181+
# pass
182+
183+
# o = obs.obs_get_source_by_name('場景 2 2')
184+
# # o1 = obs.obs_get_source_by_name('Welcome')
185+
# if o:
186+
# obs.script_log(obs.LOG_INFO, f"{obs.obs_source_showing(o)}")
187+
# # c = obs.obs_source_create("color_key_filter", "my_test111", None, None)
188+
# # obs.obs_source_add_active_child(o, c)
189+
# # obs.obs_source_release(c)
190+
# props = obs.obs_source_properties(o)
191+
# p = obs.obs_properties_first(props)
192+
# obs.obs_property_set_enabled(p, False)
193+
# obs.obs_source_update_properties(o)
194+
# obs.obs_source_release(o)

src/zh/scripts/properties.py renamed to src/zh/properties.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def set_random_text(props, prop):
8484
messages = ('天气不错!', '吃了吗?', '下雨啦!')
8585
text = messages[random.randint(0, 2)]
8686

87-
# 将随机文本写入脚本设置项 message
87+
# 将随机文本写入设置项 message
8888
obs.obs_data_set_string(current_settings, 'message', text)
8989
# 将脚本设置应用到属性集对象
9090
obs.obs_properties_apply_settings(props, current_settings)

0 commit comments

Comments
 (0)